douyan9398 2012-08-20 13:36
浏览 59
已采纳

谷歌api php客户端 - Http put请求

I'm trying to create a Http put request with google-api-php-client. Oauth is working fine and I can do get requests but I just can't figure out how to do a put.

//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);

The error is getting is "Content-Type application/x-www-form-urlencoded is not a valid input type.".

It seems that it's trying to do a POST. What is the correct way to do a PUT request?

  • 写回答

1条回答 默认 最新

  • douweng3564 2012-08-20 14:03
    关注

    I found it. The Content-type value has to be set in the headers parameter. I tought it was done automatically.

    $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());
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?