代码之家  ›  专栏  ›  技术社区  ›  Diego

正在调用HttpClient。VB中的PutAsJsonAsync。净额

  •  0
  • Diego  · 技术社区  · 7 年前

    我用C写了这个代码#

    private async Task AAA(ClassInstance campanaRep)
    {
      using (HttpClient client = new HttpClient())
        {
            client.BaseAddress = new Uri(apiUrl);
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                        HttpResponseMessage response = await client.PutAsJsonAsync("Http:...." + "WebMethod", campanaRep);
       if (response.IsSuccessStatusCode)
        bol = response.Content.ReadAsAsync<bool>().Result;
    }
    

    它很好用。。。。

    我正在尝试转换为VB。NET,这就是我可以迁移的内容

    private sub AAA(campanaRep as ClassInstance )
    
      Using client As New HttpClient()
                client.BaseAddress = New Uri(apiUrl)
                client.DefaultRequestHeaders.Accept.Clear()
                client.DefaultRequestHeaders.Accept.Add(New System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"))
               HttpResponseMessage response = await client.PutAsJsonAsync("Http:...." + "WebMethod", campanaRep);
       if (response.IsSuccessStatusCode)
        bol = response.Content.ReadAsAsync<bool>().Result
        end sub
    End Function
    

    我在网上出错了

    HttpResponseMessage response=等待客户端。PutAsJsonAsync(“Http”+ “WebMethod”,campanaRep)

    我认为AAA函数必须定义不同。赋值也必须不同,但我找不到正确的语法。

    应该怎样?

    1 回复  |  直到 7 年前
        1
  •  3
  •   DavidG    7 年前

    您的代码中有许多错误,但您似乎被编译器错误所困扰,这表明:

    方法参数必须用括号括起来

    这是因为您尚未将该方法标记为 Async 因此编译器假设 Await 是一个函数。所以只需在签名上加上:

    Private Async Sub AAA(campanaRep As ClassInstance)
    

    此外,代码的其余部分完全是一团糟,这里稍微整理一下:

    Private Async Sub AAA(campanaRep As ClassInstance)
        Using client As New System.Net.Http.HttpClient()
            client.BaseAddress = New Uri("")
            client.DefaultRequestHeaders.Accept.Clear()
    
            Dim response As System.Net.Http.HttpResponseMessage = _
                Await client.PutAsJsonAsync("Http"+ "WebMethod", campanaRep)
    
            If (response.IsSuccessStatusCode)
                bol = Await response.Content.ReadAsAsync(Of Boolean)
            End If
        End Using
    End Sub