在PHP中解析令牌的HTTPS响应时出现问题
我一直在努力解析https响应,以获得将来https调用所需的令牌值 为了从JSON响应中解析令牌,我尝试了以下方法:在PHP中解析令牌的HTTPS响应时出现问题,php,json,xml,parsing,https,Php,Json,Xml,Parsing,Https,我一直在努力解析https响应,以获得将来https调用所需的令牌值 为了从JSON响应中解析令牌,我尝试了以下方法: $doc = json_decode($response, true); token = $doc["result"]["token"]; $json = json_encode($response); $token = json_decode($json,TRUE)['raw_body']; token = json.loads(data.text)["result"][
$doc = json_decode($response, true);
token = $doc["result"]["token"];
$json = json_encode($response);
$token = json_decode($json,TRUE)['raw_body'];
token = json.loads(data.text)["result"]["token"]
ob_start();
echo $token;
$test = ob_get_contents();
ob_end_clean();
echo $test;
$token = preg_replace("/[^\w]+/", " ", $data['raw_body']);
为了从XML响应中解析令牌,我尝试了以下方法:
$doc = json_decode($response, true);
token = $doc["result"]["token"];
$json = json_encode($response);
$token = json_decode($json,TRUE)['raw_body'];
token = json.loads(data.text)["result"]["token"]
ob_start();
echo $token;
$test = ob_get_contents();
ob_end_clean();
echo $test;
$token = preg_replace("/[^\w]+/", " ", $data['raw_body']);
在python中,要解析令牌的JSON,我只需做以下工作:
$doc = json_decode($response, true);
token = $doc["result"]["token"];
$json = json_encode($response);
$token = json_decode($json,TRUE)['raw_body'];
token = json.loads(data.text)["result"]["token"]
ob_start();
echo $token;
$test = ob_get_contents();
ob_end_clean();
echo $test;
$token = preg_replace("/[^\w]+/", " ", $data['raw_body']);
如果复制,请将令牌的控制台输出粘贴到以后的https调用中
它工作得非常好,所以我想也许我可以“欺骗”一点,捕获控制台输出并使用它,所以我尝试了以下方法:
$doc = json_decode($response, true);
token = $doc["result"]["token"];
$json = json_encode($response);
$token = json_decode($json,TRUE)['raw_body'];
token = json.loads(data.text)["result"]["token"]
ob_start();
echo $token;
$test = ob_get_contents();
ob_end_clean();
echo $test;
$token = preg_replace("/[^\w]+/", " ", $data['raw_body']);
然而,这也不起作用。接下来我想的是,我的“解析”结果有一些奇怪的字符,导致令牌在未来的https调用中失败。因此,我尝试了以下方法:
$doc = json_decode($response, true);
token = $doc["result"]["token"];
$json = json_encode($response);
$token = json_decode($json,TRUE)['raw_body'];
token = json.loads(data.text)["result"]["token"]
ob_start();
echo $token;
$test = ob_get_contents();
ob_end_clean();
echo $test;
$token = preg_replace("/[^\w]+/", " ", $data['raw_body']);
这给了我一个有趣的回答:
“xml版本1 0编码UTF 8结果xmlns[url在此]门户令牌7eae331326c9363c9cf47ef58c1d844422dabb0令牌结果”
所以我想我可以把绳子按空格分开,然后把记号拿出来。然而,这也不起作用
在Python中,我的完整代码如下所示:
# Request Token
data = requests.post(ACCESS_TOKEN_URL, data={'apikey': APIKEY, "format": "json"},
auth=HTTPDigestAuth(USERNAME, PASSWORD))
# Parse JSON for Token
token = json.loads(data.text)["result"]["token"]
在PHP中,我有:
$data = array(
'apikey' => $this->api_key,
'format' => 'xml');
Unirest\Request::auth($this->username, $this->password, CURLAUTH_DIGEST);
$response = Unirest\Request::post(self::build_url("auth", "get-token")
// lots of comments of attempts below
有什么想法吗?这是我使用PHP的第一周,我完全迷路了
谢谢你终于拿到了
我肯定把事情弄得更复杂了
$xml = simplexml_load_string($response->body);
$token = $xml->token;
可能重复的