Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中解析令牌的HTTPS响应时出现问题_Php_Json_Xml_Parsing_Https - Fatal编程技术网

在PHP中解析令牌的HTTPS响应时出现问题

在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"][

我一直在努力解析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"]["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;
可能重复的