【发布时间】:2018-10-23 10:22:46
【问题描述】:
我目前正在尝试使用以下代码创建一个简单的 HTTP 网络请求:
Imports System.Net
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
'Create initial
Dim r As HttpWebRequest = HttpWebRequest.Create(txt_Go.Text)
'Create response
Dim response As HttpWebResponse = r.GetResponse
Dim responsestream As System.IO.Stream = response.GetResponseStream
'Create a new stream reader
Dim streamreader As New System.IO.StreamReader(responsestream)
Dim data As String = streamreader.ReadToEnd
streamreader.Close()
'display data
txt_response.Text = data
Catch ex As Exception
MsgBox("Improper Input")
End Try
End Sub
End Class
如果 Windows 窗体包含供用户输入 API 的特定 URL 的文本框,则 API 根据用户的查询返回结果。我的问题是我需要设置一个包含密钥的请求标头,我不确定如何执行此操作。
这是我尝试在 C# 中实现的代码示例,我需要将其转换为能够在 VB 中使用。
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");
var uri = "https://dev.tescolabs.com/grocery/products/?query={query}&offset={offset}&limit={limit}&" + queryString;
var response = await client.GetAsync(uri);
}
}
}`
【问题讨论】:
标签: vb.net visual-studio