Php 使用cURL发布JSON数据时添加的额外垃圾值
我正在尝试使用cURL&JSON创建一个API。 现在,在我的第一个PHP文件中,我将数据作为JSON数据发送,如下所示:Php 使用cURL发布JSON数据时添加的额外垃圾值,php,json,curl,Php,Json,Curl,我正在尝试使用cURL&JSON创建一个API。 现在,在我的第一个PHP文件中,我将数据作为JSON数据发送,如下所示: public function index() { $url = 'http://172.24.130.50/testbiz/server/login'; $field_string = "{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT
public function index()
{
$url = 'http://172.24.130.50/testbiz/server/login';
$field_string = "{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}";
$json = json_encode($field_string);
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $json);
//execute post
$result = curl_exec($ch);
echo "<pre>".$result."</pre>";
//close connection
curl_close($ch);
}
错误:
$field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
$json = json_encode($field_string);
数组(“{\u201cRequest\u201d:\u201cLogin\u201d\u201cUsername\u201d:\u201cBIZRTC\u201d\u201cAPIAccessKey\u201d:\u201cAW342FFGRTR56RTH\u201d\u201cGMT时间戳\u201d:\u201c1489670000\u201d}”=>,0=>“”)
即使我在那里解码,我仍然得到\u
。此外,我不明白这些值是如何附加的:在开始时:“{\\u201c
和后面的这个\\u201d}”=>'',0=>'',
这些价值观是什么
如何解码这个JSON
我是否将正确的数据发布到服务器
更新代码
Client.php
public function login()
{
var_export($_POST);
}
您需要在
json\u encode
中指定数组,而不是字符串
替换:
$field_string = "{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}";
$json = json_encode($field_string);
至:
$field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
$json = json_encode($field_string);
代码中的问题:
$field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
$json = json_encode($field_string);
json
json
中的无效引号(“
)json\u encode
中传递字符串您需要在
json\u encode
中指定数组,而不是字符串
替换:
$field_string = "{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}";
$json = json_encode($field_string);
至:
$field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
$json = json_encode($field_string);
代码中的问题:
$field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
$json = json_encode($field_string);
json
json
中的无效引号(“
)json\u encode
中传递字符串这是因为下面的线
$field_string = '{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}';
$json = $field_string;
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($json))
);
假设是这样
这是因为下面的线
$field_string = '{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}';
$json = $field_string;
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($json))
);
假设是这样
如果将json字符串存储在变量中,则不需要
json\u encode()
,因为它用于将数组转换为json字符串
如果将json字符串存储在变量中,则不需要
json\u encode()
,因为它用于将数组转换为json字符串
它显示了一个错误:消息:使用未定义的常量“Request”-假定“Request”是因为请求是预定义的常量,所以在Request上使用其他内容它表示对于所有请求,username codeditor确实将我显示为字符串它显示为constantNo我认为双引号在某些地方是错误的,因为在sublime文本中,它显示的是常量而不是stringno,qotes将显示相同的错误字符串。请显示错误:消息:使用未定义常量“Request”-假定为“Request”-因为请求是预定义常量,所以在Request上使用其他内容。它表示所有请求,username codeditor确实以字符串的形式显示我,它显示为constantNo我不认为双引号在某些地方是错误的,因为在崇高的文本中,它显示的是常量而不是字符串。qotes将显示相同的错误字符串。请将您得到的错误字符串显示为响应
“{\\r\\n\\\\\\\\\”请求\\:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\匿名\\“,\\r\\n\\\\\\\\\\\\\\\\\\\\”APIAccessKey\\”:\\\\“AW342FFGRTR56RTH\\”,\\r\\n\\\\\\“GMT时间戳\\”:\\\\\\\“1489670000\\”=>,0=>”,
我已经更正了您代码中的所有错误。。您请求的api可能工作不正常。尝试使用此{“请求”:“登录”、“用户名”:“匿名”、“APIAccessKey”:“AW342FFGRTR56RTH”、“GMT时间戳”:“1489670000”}
Json。我向您提供了完整的curl请求,请尝试在终端@sahil上进行检查,现在我得到了以下信息:“{\\\”请求\\”:\\\“登录\\”、\\“用户名\\”:\\\“匿名\\”、\\“APIAccessKey\”:\\\“AW342FGRTR56RTH\”、\\“GMT时间戳\\”:\\“1489670000\”:“0:”,“0:”“
当我签入json验证器时,它显示无效。因此我想知道如何一次性删除这些”`我尝试使用stripslashes,但它没有删除所有的slashes。我想问一件事,你又在做json\u encode
?你不需要做json编码,因为这个请求已经是一个jsonI了,{code>AW342FGRTR56RTH\\\”,\\r\\n\\\\\\\\\\“GMT时间戳\\”:\\\“1489670000\\”\\r\\n}“=>”,0=>”,)我已更正了您代码中的所有错误。。您请求的api可能工作不正常。尝试使用此{“请求”:“登录”、“用户名”:“匿名”、“APIAccessKey”:“AW342FFGRTR56RTH”、“GMT时间戳”:“1489670000”}
Json。我向您提供了完整的curl请求,请尝试在终端@sahil上进行检查,现在我得到了以下信息:“{\\\”请求\\”:\\\“登录\\”、\\“用户名\\”:\\\“匿名\\”、\\“APIAccessKey\”:\\\“AW342FGRTR56RTH\”、\\“GMT时间戳\\”:\\“1489670000\”:“0:”,“0:”“
当我签入json验证器时,它显示无效。因此我想知道如何一次性删除这些”`我尝试使用stripslashes,但它没有删除所有的slashes。我想问一件事,你又在做json\u encode
?您不需要执行json_encode
,因为这个{“请求”:“登录”、“用户名”:“匿名”、“APIAccessKey”:“AW342FGRTR56RTH”、“GMT时间戳”:“1489670000”}
已经是一个jsoni获取以下信息:数组(“{”请求):{“登录”,“用户名”:“匿名”,“APIAccessKey”:“AW342FGRTR56RTH”,“GMT”:u“1489670000”}'=>'',0=>'',是的,我不知道如何处理'=>'',0=>'',如何在另一面打印?它如何显示空的arrayleet us.ok现在做这个$d=array\u key($\u POST)$da=json_解码($d[0]);echo$da->request;它假设返回'login'。我得到以下信息:array(“{”请求“:”login“,”用户名“:”匿名“,”APIAccessKey“:”AW342FFGRTR56RTH“,”GMT时间戳“:”1489670000“}=>”,0=>”)
是的,我不知道如何处理”=>,0=>,