CURLOPT_PUT与CURLOPT_POSTFIELDS

时间:2017-07-05 06:06:05

标签: php api curl put

当我通过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);
} 

1 个答案:

答案 0 :(得分:4)

如果您查看documentation,则说明当您将CURLOPT_PUT设置为true时,必须将PUT的文件设置为CURLOPT_INFILE并且CURLOPT_INFILESIZE(在您的情况下,您没有设置文件)。

CURLOPT_CUSTOMREQUEST设置为PUT方法并不期望文件是CURLOPT_CUSTOMREQUESTCURLOPT_PUT之间的主要区别。