目前正在尝试将get请求作为c#程序的一部分。该请求在Postman上正常工作,因为它使用标头进行授权。但是,我无法让程序使用该代码在其Get请求中正确使用此标头。我已经好好看看并尝试了我发现的各种代码,但还没有设法解决它,所以任何帮助都会受到赞赏!
public string Connect()
{
using (WebClient wc = new WebClient())
{
string URI = "myURL.com";
wc.Headers.Add("Content-Type", "text");
wc.Headers[HttpRequestHeader.Authorization] = "Bearer OEMwNjI2ODQtMTc3OC00RkIxLTgyN0YtNzEzRkE5NzY3RTc3";//this is the entry code/key
string HtmlResult = wc.DownloadString(URI);
return HtmlResult;
}
}
上面是班级内的一种方法。 下面是另一种尝试,它是一种传递URL的扩展方法:
public static string GetXml(this string destinationUrl)
{
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create(destinationUrl);
request.Method = "GET";
request.Headers[HttpRequestHeader.Authorization] = "Bearer
OEMwNjI2ODQtMTc3OC00RkIxLTgyN0YtNzEzRkE5NzY3RTc3";
HttpWebResponse response;
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream responseStream = response.GetResponseStream();
string responseStr = new
StreamReader(responseStream).ReadToEnd();
return responseStr;
}
else
{
Console.Write(String.Format("{0}({1})",
response.StatusDescription, response.StatusCode));
}
return null;
}
答案 0 :(得分:0)
我可以推荐非常方便的RestSharp软件包(在Nuget上找到它)。
它将您当前的代码转换为
public string Connect()
{
var client = new RestClient();
var request = new RestRequest("myURL.com", Method.GET);
request.AddParameter("Authorization", "Bearer OEMwNjI2ODQtMTc3OC00RkIxLTgyN0YtNzEzRkE5NzY3RTc3");
var response = client.Execute(request);
return response.Content;
}
它更简洁,更容易使用(在我看来),从而减少了传递或使用错误方法的可能性。
如果您仍然无法恢复/连接数据。然后使用PostMan单击PostMan右上角的Code
并选择C# (RestSharp)
选项。无论生成什么,都与PostMan发送的内容完全匹配。复制一遍,你应该得到符合你的PostMan请求的数据。