110,532
社区成员
发帖
与我相关
我的任务
分享
Public Class HTTPHelper
Shared client As New HttpClient
Public Function PostMethod(url As String, values As List(Of KeyValuePair(Of String, String))) As HttpResponseMessage
Dim content = New FormUrlEncodedContent(values)
Dim posttask As Threading.Tasks.Task(Of HttpResponseMessage) = client.PostAsync(url, content)
posttask.Wait()
Dim response As HttpResponseMessage = posttask.Result
Return response
End Function
Public Function GetMethod(url As String) As String
Dim gettask As Threading.Tasks.Task(Of HttpResponseMessage) = client.GetAsync(url)
gettask.Wait()
Dim response As HttpResponseMessage = gettask.Result
response.EnsureSuccessStatusCode()
Dim readtask = response.Content.ReadAsStringAsync
readtask.Wait()
Return readtask.Result
End Function
Public Sub New()
client.DefaultRequestHeaders.Connection.Add("keep-alive")
End Sub
End Class
这是自己写的一个简单的辅助类。Private Function getJsonObject(username As String, pwd As String) As JObject
Dim httphelper As New DAL.HTTPHelper
Dim values As New List(Of KeyValuePair(Of String, String)) From {
New KeyValuePair(Of String, String)("username", username),
New KeyValuePair(Of String, String)("password", pwd),
New KeyValuePair(Of String, String)("channel_type", "61")
}
Dim response = httphelper.PostMethod("http://web.yunyichina.cn/api/yyt.base.user.sys.login", values)
Dim getstr As String
getstr = "http://web.yunyichina.cn/api/yyt.clinic.fuyin.untreated.apply.list?hospital_code=gzzyydxdyfsyy&page_size=10&page_num=1&order_no=&agt_order_num=&pat_name=&admission_no=&begin_time=" & DateAdd(DateInterval.Month, -1, Now).ToString("yyyy-MM-dd") & "2017-11-29 00:00&end_time=" & Now.ToString("yyyy-MM-dd") & " 23:59&apply_status="
Dim responsestring As String = httphelper.GetMethod(getstr)
Dim jsonob As JObject = JObject.Parse(responsestring)
Return jsonob
End Function
这是业务逻辑,调用 的时候给出参数得到JObject,再进入其他逻辑。 Public Shared Function GetMethod(url As String) As String
Dim ctoken As New CancellationTokenSource
Dim timer As New Timers.Timer(9000) With {.AutoReset = False}
AddHandler timer.Elapsed, AddressOf ctoken.Cancel
timer.Start()
Dim gettask As Task(Of HttpResponseMessage) = client.GetAsync(url, ctoken.Token)
gettask.Wait()
Dim response As HttpResponseMessage = gettask.Result
response.EnsureSuccessStatusCode()
Dim readtask = response.Content.ReadAsStringAsync
readtask.Wait()
Return readtask.Result
End Function
异常依旧
try
{
}
catch(e1 As Exception)
{
e1.Message '就是异常信息
}