我正在尝试使用带有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',
));
`
来自响应正文的错误消息: 执行操作时发生错误。稍后再试。
我做错了什么?
答案 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留空,并将文件内容放在请求正文中。"
希望它有所帮助。