[英]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.