当我通过curl将PUT请求API发送到REST时,我发现了奇怪的行为。如果您设置参数 curl_setopt($ curl,CURLOPT_PUT,true) ,然后查询,其中CURLOPT_POSTFIELDS不为空,则查询执行持续1.5分钟(就像它取决于一些超时)。如果使用参数 curl_setopt($ curl,CURLOPT_CUSTOMREQUEST,“PUT”) 发送相同的请求,则查询执行将持续大约1秒。有人可以解释这些参数之间的根本区别吗?
示例代码:
public Cursor getList(int user) {
int zero = 0;
String query = ("SELECT * FROM flavors WHERE inventory >= " + zero + " AND inventory <= " + user);
return mDb.rawQuery(query, null);
}
答案 0 :(得分:4)
如果您查看documentation,则说明当您将CURLOPT_PUT
设置为true
时,必须将PUT
的文件设置为CURLOPT_INFILE
并且CURLOPT_INFILESIZE
(在您的情况下,您没有设置文件)。
将CURLOPT_CUSTOMREQUEST
设置为PUT
方法并不期望文件是CURLOPT_CUSTOMREQUEST
和CURLOPT_PUT
之间的主要区别。