1. /// yx
    2. /// 示例Url = http://192.168.1.21/dthealth/web/csp/pha.mob.broker.csp
    3. /// w ##class(Demo.HttpDemo).HttpGetDemo()
    4. ClassMethod HttpGetDemo()
    5. {
    6. /* 定义request对象 */
    7. #dim request as %Net.HttpRequest= ##class(%Net.HttpRequest).%New()
    8. /* 请求地址不用加http:// */
    9. s request.Server ="192.168.1.21"
    10. /* Timeout指定等待web服务器响应的时间,以秒为单位。 缺省值是30秒。 */
    11. s request.Timeout = 5
    12. /* WriteTimeout指定等待Web服务器完成写入的时间(以秒为单位)。默认情况下,它将无限期等待。可接受的最小值为2秒。 */
    13. s request.WriteTimeout = 5
    14. /* 添加地址对象参数 */
    15. d request.InsertParam("CacheUserName", "yx")
    16. d request.InsertParam("CachePassword", "123456")
    17. d request.InsertParam("CacheNoRedirect", "1")
    18. d request.InsertParam("ClassName", "PHA.PCCP.MOB.API")
    19. d request.InsertParam("MethodName", "GetPhaWardRound")
    20. d request.InsertParam("params", "172#O")
    21. /* 设置cookies 防止占用多个lic */
    22. d:($g(%cookies) '= "") request.SetHeader("cookie", %cookies)
    23. /* 请求地址路径 */
    24. s status = request.Get("/dthealth/web/csp/pha.mob.broker.csp")
    25. if (status '= 1) {
    26. d $System.Status.DisplayError(status)
    27. q "请求失败"
    28. }
    29. /* 定义response对象 */
    30. #dim response as %Net.HttpResponse = request.HttpResponse
    31. /* 获取HTTP状态码 */
    32. s statusCode= response.StatusCode
    33. if (statusCode = 200){
    34. /* 获取头信息两种方式(一) */
    35. s encoding = response.GetHeader("CONTENT-ENCODING")
    36. /* 获取头信息两种方式(二) */
    37. s cookie = response.Headers("SET-COOKIE")
    38. s %cookies = $p(cookie, ";", 1)
    39. w "输出所有头部信息:",!
    40. d response.OutputHeaders()
    41. w !
    42. /* 获取流数据 */
    43. #dim stream as %GlobalBinaryStream = response.Data
    44. s data = stream.Read()
    45. }
    46. q $g(data)
    47. }

    image.png
    image.png