0

google-api-php-clientを使用してHttpputリクエストを作成しようとしています。Oauthは正常に機能しており、リクエストを取得することはできますが、プットの方法がわかりません。

//While looping over my contacts
$apiClient = new ApiClient();
$apiClient->setAccessToken($this->Auth->user('google_oauth2_token'));

//Getting fresh XML data since I transformed mine into an array
$contactGetRequest = new apiHttpRequest($contact['link'][1]['@href'], 'GET', array('GData-Version' => 3.0));   
$rawContactData = $apiClient->getIo()->authenticatedRequest($contactGetRequest);

$contactXml = Xml::build($rawContactData->getResponseBody());

//Not changing anything, just trying to do a PUT request
$contactPutRequest = new apiHttpRequest($contact['link'][2]['@href'], 'PUT', array('GData-Version' => 3.0), $contactXml->asXML());
$response = $apiClient->getIo()->authenticatedRequest($contactPutRequest);

「Content-Typeapplication/x-www-form-urlencodedは有効な入力タイプではありません」というエラーが表示されます。

POSTを実行しようとしているようです。PUTリクエストを行う正しい方法は何ですか?

4

1 に答える 1

2

見つけた。Content-type値は、headersパラメーターで設定する必要があります。私はそれが自動的に行われると思った。

$contactPutRequest = new apiHttpRequest($contact['link'][2]['@href'], 'PUT', array('GData-Version' => 3.0, 'Content-type' => 'application/atom+xml; charset=UTF-8; type=entry'), $contactXml->asXML());
于 2012-08-20T14:03:50.917 に答える