![](/img/trans.png)
[英](400) Bad Request -> The remote server returned an error: (400) Bad Request
[英]The remote server returned an error: (400) Bad Request?
我正在尝试从网址获取响应,该网址必须是JSON,如下所示:
{“request_status”:“FAILURE”,“error_message”:“商家ID不正确”,“error_code”:“0”,“unique_order_id”:“”}
我在winForm中的click事件处理程序中使用此代码(它有5个文本框控件,每个处理一个特定的参数,我想在文本框textBoxResponse中接收JSON文件。
private void button1_Click(object sender, EventArgs e)
{
WebRequest request = WebRequest.Create("http://test5.paymobsolutions.com/api/merchant/pay_order_online/");
request.Method = WebRequestMethods.Http.Post;
//request.Headers.Add("REF-1", "me1");
//request.Headers.Add("REF-2", "me2");
request.Proxy = null;
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
PaymentParamters paras = new PaymentParamters { c_cvv_U = textBoxCVV.Text, c_expiry_mm_U = textBoxExM.Text, c_expiry_yy_U = textBoxExY.Text, c_holder_name_U = textBoxHolderName.Text, c_pan_U = textBoxPAN.Text };
string json = JsonConvert.SerializeObject(paras);
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var response = request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
textBoxResponse.Text = result;
}
}
但是会发生异常:
远程服务器返回错误:(400)错误请求
这个HTML工作正常,我想让我的winForm像这样:
<form method="post" action="http://test5.paymobsolutions.com/api/merchant/pay_order_online/">
<input type="text" placeholder="pan" name="c_pan_U" value="" />
<input type="text" placeholder="holder_name" name="c_holder_name_U" value ="" />
<input type="text" placeholder="expiry_mm" name="c_expiry_mm_U" value="" />
<input type="text" placeholder="expiry_yy" name="c_expiry_yy_U" value="" />
<input type="text" placeholder="cvv" name="c_cvv_U" value="" />
<input type="submit" />
</form>
HTML表单帖子将POST为application/x-www-form-urlencoded
或multipart/form-data
。 您的服务调用正在尝试编写application/json
。 这可能是你问题的症结所在。
该服务是否接受JSON(检查它的接受标头)? 如果是这样,您需要在请求标头中设置它。
或者,将代码更改为发布x-www-form-urlencoded。 有关示例 , 请参阅此帖子,下面已发布了一个片段供您参考。
var request = (HttpWebRequest)WebRequest.Create("http://www.example.com/recepticle.aspx");
var postData = "thing1=hello";
postData += "&thing2=world";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.