首页 > 解决方案 > 来自 .net C# 的 WebService 调用出现错误:(502) 网关错误

问题描述

尝试从 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# 代码中做错了什么?

标签: c#.netweb-services

解决方案


WebRequest 的 uri 具有查询参数&format=csv。也许这就是您收到 502 的原因。Python 请求缺少该查询参数。您是否通过删除该部分来尝试 WebRequest?


推荐阅读