Eel*_*Fan 25 c# asp.net asp.net-mvc http fiddler
我有一个ASP.NET MVC
网站.我的一条路线是一个URL
需要5个参数.为了说明起见,这些参数被命名为parameter1
,parameter2
,parameter3
,parameter4
,和parameter5
.目前,我正在构建一个C#
代码中的URL,该代码将POST
通过一个mvc动作WebClient
.该代码如下所示:
WebClient myWebClient = new WebClient();
myWebClient.UploadStringCompleted += myWebClient_UploadStringCompleted;
string url = "http://www.example.com/customer/" + parameter1 + "/orders/" + parameter2 + "/" + parameter3 + "/" + parameter4 + "/" + parameter5;
myWebClient.UploadStringAsync(new Uri(url, UriKind.Absolute));
Run Code Online (Sandbox Code Playgroud)
我相信这个UploadString
方法可以做到POST
.我需要做一个POST
,因为我的参数值可能很长.事实上,我估计偶尔,总网址长度可能是20000个字符.无论如何,400 error
当我尝试发布我的数据时,我得到了一个.在努力调试这一点,我试图找出如何模拟POST
在Fiddler
.
假设我通过如上所示的查询字符串传递值,我会输入什么值Fiddler
?从Composer
标签中,我不确定该Request Headers
区域应该输入什么.我也不完全确定要为网址输入什么内容.我不确定是否将整个URL放在那里,包括参数值,或者是否属于Request Headers
.
我需要进入什么Fiddler
,以便我可以调试我的问题?
And*_*rei 47
基本上所有参数都是URL的一部分,这是问题的根源.这是正在发生的事情:您正在达到URL长度限制,并收到"400错误请求"错误.在现实世界中,大多数Web浏览器不适用于长度超过2000个字符的URL.
为了解决这个问题,我建议进行一些重构,以便将请求发布到URL http://www.example.com/customer/parameter1/orders
或甚至http://www.example.com/customer/orders
在请求正文中发送参数.以下是如何在Fiddler中测试此类请求:
Composer
选项卡上选择POST
请求动词将URL指定为
http://www.example.com/customer/parameter1/orders
要么
在Request Headers
部分中,您可以设置内容类型标题
Content-Type: application/x-www-form-urlencoded
Run Code Online (Sandbox Code Playgroud)
或您可能需要的任何其他标题.或者只是留空,这将适用于您的情况.
最后在Request Body
字段中以查询字符串形式列出您的参数
parameter1name=parameter1value¶meter2name=parameter2value
Run Code Online (Sandbox Code Playgroud)在这个新案例中,您可以使用WebClient
以下命令发送此类请求:
WebClient myWebClient = new WebClient();
myWebClient.UploadStringCompleted += myWebClient_UploadStringCompleted;
string url = "http://www.example.com/customer/orders";
string data = "parameter1name=parameter1value¶meter2name=parameter2value";
myWebClient.UploadStringAsync(new Uri(url, UriKind.Absolute), data);
Run Code Online (Sandbox Code Playgroud)
我只是模仿发送的确切请求.
我是这样做的:
归档时间: |
|
查看次数: |
46296 次 |
最近记录: |