我正在实施一个使用OAuth的签名服务。对于这项服务,我获得了一组永不过期的密钥,我可以使用GET调用它而不会出现任何问题。现在我需要使用我在他们的测试套件中测试过的JSON向服务器发送一个POST请求,该套件在那里工作。我正在粘贴函数(这是类的一部分):
public function updatedoc($docid,$documentbody){
$url=$this->api_url."/api/v1/update/".$docid;
try {
$oauth = new OAuth($this->oauth_consumer_key,$this->oauth_signature,OAUTH_SIG_METHOD_PLAINTEXT,OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->enableDebug();
$oauth->setAuthType(OAUTH_AUTH_TYPE_FORM);
$oauth->setToken($this->oauth_token,$this->oauth_token_secret);
echo $OA_header = $oauth->getRequestHeader("POST", $url);
$oauth->setAuthType(OAUTH_AUTH_TYPE_FORM);
$oauth->fetch($url,"json=".rawurlencode(json_encode($documentbody)), OAUTH_HTTP_METHOD_POST, array('Authorization'=>$OA_header));
echo $fileinfo = $oauth->getLastResponse();
}
catch(OAuthException $E) {
$fileinfo="false";print_r($E);
}
return $fileinfo;
}
我知道 JSON 不正确,但是当我将它发布到他们的测试套件中时,它就可以了。我在这里想什么错了吗?