这是我的代码
echo 22;
$url = 'http://www.10bet.com/pagemethods.aspx/GetLeaguesContent';
$fields = array(
'BranchID' => urlencode('1') ,
'LeaguesCollection' => urlencode('10098') ,
);
$fields_string = '';
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type : application/json; charset=utf-8'));
$result = curl_exec($ch);
curl_close($ch);
var_dump( $result );
我一直收到
Bad Request - Invalid Header
HTTP Error 400. The request has an invalid header name.
您意外地得到错误
Bad Request - Invalid Header
HTTP Error 400. The request has an invalid header name.
因为您使用了无效的标头名称:)
您使用
Content-Type : application/json; charset=utf-8
注意标题名称中的空格
正确的用法是:
Content-Type: application/json; charset=utf-8
如果有人像@ZombieSpy所描述的那样遇到了这个问题,并想知道这种严格性是从哪里来的,这是在https://datatracker.ietf.org/doc/html/rfc7230#section-3.2,如下所示:
3.2. Header Fields
Each header field consists of a case-insensitive field name followed
by a colon (":"), optional leading whitespace, the field value, and
optional trailing whitespace.