Onedrive上载因内部服务器错误而失败

时间:2014-08-14 10:43:27

标签: php wordpress api rest onedrive

我正在尝试使用带有PHP的REST API在OneDrive上创建文件,但在响应中我检索HTTP状态代码500.

代码: `

    $url = $this->buildUrl(
        '{folder_id}/files/{filename}?access_token={token}',
        array(
            'folder_id' => $folderId,
            'filename'  => $filename,
            'token'     => $this->getAccessToken(),
        )
    );

    $response = wp_remote_request($url, array(
        'body'    => $content,
        'method'  => 'PUT',
    ));

`

来自响应正文的错误消息: 执行操作时发生错误。稍后再试。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我刚刚经历了同样的问题。当我移除' Content-type'来自请求标题的行。

如果您使用PHP Curl在wp_remote_request中发送请求,则可以删除' Content-type'在调用curl_exec:

之前,通过调用与此类似的内容从请求标题行开始
 curl_setopt($ci, CURLOPT_HTTPHEADER, array("Content-Type:"));

通过添加上面的代码,实际的请求标题如下所示(请注意,没有' Content-Type'):

 PUT /v5.0/{folderId}/files/{filename}?access_token={accesstoken}
 User-Agent: SOMEAGENT
 Host: apis.live.net
 Accept: */*
 Expect: 100-continue
 Content-Length: 29

仅供参考:我从这里得到了一个提示:

http://msdn.microsoft.com/en-us/library/dn631834.aspx

"对于PUT请求,请将Content-Type留空,并将文件内容放在请求正文中。"

希望它有所帮助。