【发布时间】:2019-09-27 22:37:10
【问题描述】:
我正在尝试从此 API API Wykazu podatników VAT读取数据
通过 HttpWebRequest 它正在工作:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://wl-test.mf.gov.pl:9091/wykaz-podatnikow/api/search/nips/3245174504?date=2019-09-27");
try
{
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, System.Text.Encoding.UTF8);
Console.WriteLine(reader.ReadToEnd());
}
}
catch (WebException ex)
{
WebResponse errorResponse = ex.Response;
using (Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, System.Text.Encoding.GetEncoding("utf-8"));
String errorText = reader.ReadToEnd();
// log errorText
}
throw;
}
但是当我通过 WebClient 尝试时:
var client = new WebClient();
client.Headers.Add("nips", "3245174504");
client.Headers.Add("date", "2019-09-27");
var response = client.DownloadString("https://wl-test.mf.gov.pl:9091/wykaz-podatnikow/api/search/nips/");
Console.WriteLine(response.ToString());
我收到此错误消息:
未处理的异常:System.Net.WebException:WebClient 请求期间发生异常。 ---> System.ArgumentException:必须使用适当的属性或方法修改“日期”标头。 参数名称:名称 在 System.Net.WebHeaderCollection.ThrowOnRestrictedHeader(字符串 headerName) 在 System.Net.WebHeaderCollection.Add(字符串名称,字符串值) 在 System.Net.HttpWebRequest.set_Headers(WebHeaderCollection 值) 在 System.Net.WebClient.CopyHeadersTo(WebRequest 请求) 在 System.Net.WebClient.GetWebRequest(Uri 地址) 在 System.Net.WebClient.DownloadDataInternal(Uri 地址,WebRequest& 请求) --- 内部异常堆栈跟踪结束 --- 在 System.Net.WebClient.DownloadDataInternal(Uri 地址,WebRequest& 请求) 在 System.Net.WebClient.DownloadString(Uri 地址) 在 System.Net.WebClient.DownloadString(字符串地址)
我应该如何格式化第二个日期参数?
【问题讨论】:
-
您确定要在表头中添加这些参数吗?一旦它是一个“获取”请求,它就应该像第一个示例一样在 url 上。
-
如果您想更改日期参数,请查看此链接:link