【问题标题】:Onedrive uploading fails with the Internal Server ErrorOnedrive 上传失败并出现内部服务器错误
【发布时间】:2014-10-07 23:46:29
【问题描述】:

我正在尝试使用带有 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',
    ));

`

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

我做错了什么?

【问题讨论】:

标签: php wordpress api rest onedrive


【解决方案1】:

我刚刚遇到了同样的问题。当我从请求标头中删除“内容类型”行时,它对我有用。

如果您使用 PHP Curl 在 wp_remote_request 中发送请求,您可以在调用 curl_exec 之前通过调用类似的方法从请求标头中删除“Content-type”行:

 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 留空,并将文件内容放入请求正文中。”

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2012-01-11
    • 1970-01-01
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多