Som*_*ath 4 post curl node.js npm
我对使用node.js的LINUX很新.这只是我的第二天.我使用node-curl进行curl请求.在下面的链接中,我找到了Get请求的示例.任何人都可以使用node-curl为我提供Post请求示例.
https://github.com/jiangmiao/node-curl/blob/master/examples/low-level.js
您需要使用setopt
以便为cURL请求指定POST选项.你应该首先考虑的选项是CURLOPT_POST
和CURLOPT_POSTFIELDS
.从以下链接的libcurl文档node-curl
:
CURLOPT_POST
设置为1的参数告诉库执行常规HTTP发布.这也将使库使用"Content-Type:application/x-www-form-urlencoded"标题.(这是迄今为止最常用的POST方法).
使用CURLOPT_POSTFIELDS或CURLOPT_COPYPOSTFIELDS选项之一指定要发布的数据和CURLOPT_POSTFIELDSIZE或CURLOPT_POSTFIELDSIZE_LARGE来设置数据大小.
或者,您可以使用CURLOPT_READFUNCTION和CURLOPT_READDATA选项向POST提供数据,但是您必须确保不将CURLOPT_POSTFIELDS设置为除NULL之外的任何值.使用回调提供数据时,必须使用分块传输编码进行传输,或者必须使用CURLOPT_POSTFIELDSIZE或CURLOPT_POSTFIELDSIZE_LARGE选项设置数据大小.要启用分块编码,只需传入相应的Transfer-Encoding标头,请参阅post-callback.c示例.
CURLOPT_POSTFIELDS
... [this]应该是在HTTP POST操作中发布的完整数据.您必须确保数据的格式与服务器接收数据的方式相同.libcurl不会为您转换或编码.大多数Web服务器都会假设这些数据是url编码的.
此POST是一种普通的application/x-www-form-urlencoded类(当使用此选项时,libcurl将默认设置Content-Type),这是HTML表单最常用的一种.另请参见CURLOPT_POST.使用CURLOPT_POSTFIELDS意味着CURLOPT_POST.
如果要进行零字节POST,则需要将CURLOPT_POSTFIELDSIZE显式设置为零,因为只需将CURLOPT_POSTFIELDS设置为NULL或""只是有效地禁止发送指定的字符串.libcurl将改为假设您将使用read回调发送POST数据!
有了这些信息,您应该能够将以下选项添加到低级示例中,以使其发出POST请求:
var fieldsStr = '{}';
curl.setopt('CURLOPT_POST', 1); // true?
curl.setopt('CURLOPT_POSTFIELDS', fieldsStr);
Run Code Online (Sandbox Code Playgroud)
您需要调整内容fieldsStr
以匹配服务器所期望的格式.根据文档,您可能还需要对数据进行url编码 - 这应该像encodeURIComponent
根据这篇文章一样简单.
归档时间: |
|
查看次数: |
3824 次 |
最近记录: |