[英]WebService Call from .net C# getting error : (502) Bad Gateway
尝试从 C# 调用 WebServices 并出现以下错误:
System.Net.WebException: 'The remote server returned an error: (502) Bad Gateway
代码:
WebRequest request = WebRequest.Create("https://xxxxx/cgi/webservice.pl?function=get_latest_ts_values&site_list=130105B&datasource=AT&varfrom=10.00&varto=10.00&lookback=60&format=csv");
request.Method = "GET";
WebResponse response = request.GetResponse();
using (Stream dataStream = response.GetResponseStream() )
{
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
Console.ReadLine();
}
但是当我使用 Postman 或只是在浏览器中复制 url 并且在以下 python 代码中也可以正常工作:
import requests
dataload = {}
dataurl = "https://xxxxx/cgi/webservice.pl?function=get_latest_ts_values&site_list=130105B&datasource=AT&varfrom=10.00&varto=10.00&lookback=60"
headers = {}
response = requests.request("GET", dataurl, headers=headers, data=dataload)
for dataresp in response:
print(dataresp)
C# 代码我做错了什么?
WebRequest 的 uri 具有查询参数&format=csv
。 也许这就是您得到 502 的原因。 Python 请求缺少该查询参数。 您是否通过删除该部分来尝试 WebRequest?
可能是不正确的内容类型或具有错误信息的用户代理。 Postman 可能在您不知情的情况下设置这些值。 可能会尝试在异常中查看是否有响应 stream 并通过流式阅读器读取它,以查看是否有更多您没有看到的信息可以为您指明正确的方向。
最终使用 RestSharp 并且工作正常。 ( https://www.nuget.org/packages/RestSharp )
string Uri = "https://xxxx/cgi/webservice.pl?xxxx";
var client = new RestSharp.RestClient(Uri);
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.