다음 요청을 올바르게 처리 할 수있는 API가 django로 작성되었습니다. 내가 장고 측에 request.DATA를 인쇄 할 경우PHP curl이 JSON을 게시하기 전에 변경 중임
curl -H "Content-Type: application/json" -d '{"name":"a","description":"b","props": {"Notes":"c"}}' http://127.0.0.1:8000/en/api/asset/ -H 'Authorization: Token 114ada7e487b2cdbc9277d377e4d20640a606bb2'
나는 다음과 같은 얻을 :
(Pdb) print request.DATA
{u'props': {u'Notes': u'c'}, u'name': u'a', u'description': u'b'}
나는 내가 원하는 PHP 코드의 다음 조각이 동일한 요청을하기 위해 사용해야 할
$data_string = json_encode($values['json_parameters']);
error_log($data_string, 0);
//curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
error_log("Method: ".$method, 0);
if ($method == 'POST') {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
}
$ data_string에는 { "name": "a", "description": "b", "props": { "Notes": "c"}}가 포함됩니다.
이 쿼리 나는 다음과 같은 얻을 백엔드에 도달하는 경우 : 그것을 보내기 전에
(Pdb) print request.DATA
<QueryDict: {u'{"name":"a","description":"b","props":{"Notes":"c"}}': [u'']}>
는 PHP 내 JSON에 무엇을하고 있습니까? 위의 컬 요청에 따라 PHP를 사용하여 정확히 동일한 데이터를 게시하려면 어떻게해야합니까?
- 내가 더 PHP 전문가는 아니지만 JSON
아, 당신은 뭔가 다른 것을 묻고있었습니다. 이제는 쿼리 작성자를 밝히기 위해 서식을 수정했습니다. –
나는 PHP *가 * 아무것도하지 않는다고 의심한다. 특히'$ data_string'이 정확하기 때문에. 더 좋은 질문은 당신이하고있는 것이 무엇입니까? PHP가 파이썬이 실제로 무엇을 보내고 있는지를 알기 위해 트래픽을 탐지 했습니까? –
나는 PHP가 나의 원래 컬 스크립트가하고있는 것을하지 않는다는 것을 확신한다. 그리고 그것이 내가하고 싶은 것이다. 나는 데이터를 스니핑하지 않았다. curl, swidt, java, angular 및 python의 요청이 예상대로 작동합니다. – Michael