.NETC#使用类似于Curl脚本的HTTPrequest
我正在使用.NET C#,并希望使用.NETC#使用类似于Curl脚本的HTTPrequest,c#,.net,curl,httprequest,C#,.net,Curl,Httprequest,我正在使用.NET C#,并希望使用HTTPrequest以与Curl相同的方式撰写文章: curl --header ’Accept: text/html’ --user ’test1:password’ --Form ’wait=0’ --Form ’data=@data.csv;type=text/csv’ some URL address here 我从Internet服务器收到错误500内部错误 要发送的数据是CSV文件 我的C#源代码: 我做错了什么?表单帖子不需要对数据进行URL
HTTPrequest
以与Curl相同的方式撰写文章:
curl
--header ’Accept: text/html’
--user ’test1:password’
--Form ’wait=0’
--Form ’data=@data.csv;type=text/csv’
some URL address here
我从Internet服务器收到错误500内部错误
要发送的数据是CSV文件
我的C#源代码:
我做错了什么?表单帖子不需要对数据进行URL编码吗 表单帖子不需要对数据进行URL编码吗 cURL使用multipart/form数据内容类型创建其请求。我认为这在您的情况下是必需的,因为您同时传递一个文本参数和一个文件。遗憾的是,.Net framework似乎没有内置对创建此内容类型的支持 有一个关于的问题,这里给出了如何自己完成的示例代码: 作为参考,该cURL命令生成的HTTP请求如下所示:
POST http://www.example.com/example HTTP/1.1
Authorization: Basic J3Rlc3Q6cGFzc3dvcmQn
User-Agent: curl/7.33.0
Host: www.example.com
Accept: text/html
Connection: Keep-Alive
Content-Length: 335
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------99aa46d554951aa6
--------------------------99aa46d554951aa6
Content-Disposition: form-data; name="'wait"
0'
--------------------------99aa46d554951aa6
Content-Disposition: form-data; name="'data"; filename="data.csv"
Content-Type: text/csv'
Time, A, B\n20120101, 100, 24\n20120102\n, 101, 27
--------------------------99aa46d554951aa6--
cURL使用multipart/form数据内容类型创建其请求。我认为这在您的情况下是必需的,因为您同时传递一个文本参数和一个文件。遗憾的是,.Net framework似乎没有内置对创建此内容类型的支持 有一个关于的问题,这里给出了如何自己完成的示例代码: 作为参考,该cURL命令生成的HTTP请求如下所示:
POST http://www.example.com/example HTTP/1.1
Authorization: Basic J3Rlc3Q6cGFzc3dvcmQn
User-Agent: curl/7.33.0
Host: www.example.com
Accept: text/html
Connection: Keep-Alive
Content-Length: 335
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------99aa46d554951aa6
--------------------------99aa46d554951aa6
Content-Disposition: form-data; name="'wait"
0'
--------------------------99aa46d554951aa6
Content-Disposition: form-data; name="'data"; filename="data.csv"
Content-Type: text/csv'
Time, A, B\n20120101, 100, 24\n20120102\n, 101, 27
--------------------------99aa46d554951aa6--
当内容类型设置为
application/x-www-form-urlencoded
时,它的格式通常与GET
请求的格式相同。另一个选项是multipart/formdata
,我对此不太确定。当然,最好的方法是查看两者生成的请求,看看它们之间有什么不同……不知道您的请求是否正常,但500代码意味着服务器遇到错误,而不是错误请求导致的错误。如果查看引发的异常,您将看到其上的响应流。查看一下内容,服务器可能已经为您提供了一些更有用的错误详细信息。curl命令创建了一个多部分/表单数据请求。当内容类型设置为application/x-www-form-urlencoded
时,它的格式通常与GET
请求的格式相同。另一个选项是multipart/formdata
,我对此不太确定。当然,最好的方法是查看两者生成的请求,看看它们之间有什么不同……不知道您的请求是否正常,但500代码意味着服务器遇到错误,而不是错误请求导致的错误。如果查看引发的异常,您将看到其上的响应流。看一下内容,服务器可能已经为您提供了一些更有用的错误详细信息。curl命令创建了一个多部分/表单数据请求。curl请求创建了一个多部分/表单数据类型的请求。因此,我认为它需要mime编码。给定的curl请求创建了一个multipart/formdata类型的请求。因此,我认为它需要mime编码。