【发布时间】:2017-01-26 20:29:58
【问题描述】:
我正在使用 PHP CURL 进行 RESTFUL API 调用。这是我的功能
$datastr = '{"Params": { "Dawar Khan": "", "Email": "ali.zia.1991@gmail.com", "MobileNumber": "36566339", "UserType": "G0", "IDNumber": "881041106", "IDExpiry": "03/01/2022", "DOB": "03/03/1988" }, "AccountID": "SHIP2YOUTST", "SecureHash": "53019EB8CA831A8D170C016A6550033A5B74D1B1A45F832560300756A02DB3F9"}';
$url = 'https://myurl.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_PORT, 443);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datastr);
$result = curl_exec($ch);
curl_close($ch);
$json_result = json_decode($result, true);
print_r($json_result);
编辑
将 var_dump 添加到结果中给了我这个。
字符串(2738)“
请求错误
服务器在处理请求时遇到错误。异常消息是“传入消息具有意外消息格式“原始”。该操作的预期消息格式为“Xml”、“Json”。这可能是因为尚未在绑定上配置 WebContentTypeMapper。有关详细信息,请参阅 WebContentTypeMapper 的文档。有关详细信息,请参阅服务器日志。
我如何知道我的字符串已发布到 url 并且响应已经到来? $datastr 必须是字符串还是 json?请指导我。谢谢。
【问题讨论】:
-
执行 $result = curl_exec($ch); var_dump($result);告诉我你有什么事情
-
@Eric 我明白了。字符串(2738)“请求错误服务器在处理请求时遇到错误。异常消息是'传入的消息具有意外的消息格式'原始'。操作的预期消息格式是'Xml','Json'。这个可能是因为尚未在绑定上配置 WebContentTypeMapper。有关详细信息,请参阅 WebContentTypeMapper 的文档。'。有关更多详细信息,请参阅服务器日志。
-
请将 curl 回复添加到您的问题中。 (var_dump)
-
@Ibu 更新了问题
-
@AliZia,您需要添加一个 json 标头,因为您的服务器需要 XML 或 JSON 格式的数据。见费利佩的回答