如何在curl php中解决HTTP / 1.1 400错误请求

时间:2015-10-05 08:44:32

标签: php curl

我必须从php代码中点击一个.aspx页面网址我正在尝试使用curl但是我收到了波纹管错误并且网址中没有空格。

HTTP/1.1 400 Bad Request Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 Date: Mon, 05 Oct 2015 08:31:13 GMT Connection: close Content-Length: 311 

贝娄是我想要击中的卷曲代码。任何身体都会告诉我为什么会出现这个错误。

$api_url = 'http://www.test/xyz/OnlineOrder.aspx?';
     $url= $api_url . 'InvoiceNo=' . $invoice;
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_HEADER, 1);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     echo $data = curl_exec($ch);
     echo $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

2 个答案:

答案 0 :(得分:6)

我得到Http response 200 ok我仔细观察了网址,我发现一个带有空格的参数导致了错误的请求。如果你有一些像问题这样的东西从网址中删除空格并有参数。

使用urlencode($url);

答案 1 :(得分:0)

如果对任何人都有用,我的问题是我必须在curl中使用POST方法,但不需要任何POST参数,因为API只能从URL查询字符串中获取值。因此,在POSTFIELDS中传递空数组解决了我的问题。我的猜测是,这取决于服务器上的Apache / PHP设置,是否允许没有发布参数的POST请求。