VB.Net中使用WebClient发送HTTP GET请求如何传递请求体内容
解决WebClient传递请求体的问题
你当前代码用DownloadString发起的是GET请求,QueryString.Add()只能添加URL上的查询参数,没法传递请求体内容。要传递Postman里的请求体,需要使用支持请求体的HTTP方法(比如POST),并用WebClient的UploadString方法实现,具体如下:
代码修改示例
假设你的请求体是JSON格式(Postman中最常用的格式),可以参考这段代码:
Using client As New WebClient() ' 设置授权头 client.Headers(HttpRequestHeader.Authorization) = AuthToken ' 指定请求体格式为JSON client.Headers(HttpRequestHeader.ContentType) = "application/json" ' 构造请求体内容(替换成你Postman里的实际JSON内容) Dim requestBody As String = "{""param1"": ""your_value1"", ""param2"": ""your_value2""}" ' 用UploadString发送POST请求,获取返回的JSON数据 Dim json As String = client.UploadString("https://www.zohoapis.com/crm/v2/Products", "POST", requestBody) ' 后续数据绑定逻辑保持不变 Dim ds1 As DataTable = GetDataTableFromJsonString(json) Dim BindingSource1 = New BindingSource BindingSource1.DataSource = ds1 DataGridView1.DataSource = BindingSource1 End Using
关键说明
- 如果你的请求体是表单格式(form-data/x-www-form-urlencoded),需要把
ContentType改成"application/x-www-form-urlencoded",请求体字符串写成"param1=value1¶m2=value2"的格式 UploadString的第二个参数是HTTP方法,根据API要求选择POST/PUT等QueryString.Add()仅用于添加URL末尾的查询参数,和请求体是完全不同的参数传递方式
内容的提问来源于stack exchange,提问作者image13
相关产品推荐
相关产品推荐

