Curl是否转换为简单的http请求?
我有一些Curl是否转换为简单的http请求?,http,post,curl,lua,Http,Post,Curl,Lua,我有一些curl请求,我想从中构建一个基本的POST请求验证(带有标题等),我找不到任何工具来转换: curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxxxx/Calls.json' \ --data-urlencode 'To=xxxxxxx65542' \ --data-urlencode 'From=+xxxxxxx4215' \ -d 'Url=https://api.twilio.com/2010-
curl
请求,我想从中构建一个基本的POST
请求验证(带有标题等),我找不到任何工具来转换:
curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxxxx/Calls.json' \
--data-urlencode 'To=xxxxxxx65542' \
--data-urlencode 'From=+xxxxxxx4215' \
-d 'Url=https://api.twilio.com/2010-04-01' \
-d 'Method=GET' \
-d 'FallbackMethod=GET' \
-d 'StatusCallbackMethod=GET' \
-d 'Record=false' \
-u ACbe68cddxxxxxxxxxxxx3aba243cc4cdb:0f442xxxxxxxxxxxxxxxxxxx
那么我的POST请求应该是什么样子呢?来自cURL手册页: -H、 --标头(HTTP)获取网页时要使用的额外标头。您可以指定任意数量的额外标头。请注意,如果 应添加一个自定义标头,该标头与 curl将使用的内部标题,外部设置的标题将是 用来代替内部的。这可以让你甚至 比curl更棘手的东西也不会做。你不应该替换 在内部设置标题,而不完全清楚自己在做什么 做。通过更换内部集管(无需更换),拆下内部集管 冒号右侧的内容,如:-H“主机:”。如果你发送 如果自定义标头没有值,则必须终止其标头 使用分号,如-H“X-Custom-Header;”发送 “X-Custom-Header:” curl将确保您添加/替换的每个标题都与 正确的行尾标记,因此不应将其添加为 标题内容:不要添加换行符或回车符,它们会 只会把事情搞砸 另请参见-A、-user-agent和-e、-referer选项 此选项可多次用于添加/替换/删除多个 标题 AmazonAWS大量使用头进行身份验证。一个快速的谷歌应该可以从以下几个方面获得很多例子: 您所需要做的就是根据您的twilio使用改编AWS示例
要将示例制作成POST,只需将PUT更改为POST并添加POST字段-d“field1=val1&field2=val2&field3=val3”您可以使用
--header
指定标题,并使用-X
/--request
参数指定请求(POST)的类型
例如:
curl --request POST --header "X-MyHeader: MyAuthenticatedHeader" www.stackoverflow.com
在您的情况下,它应该是:
curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxxxx/Calls.json' \
--header 'X-MyHeader: MyAuthenticatedHeader' \
--data-urlencode 'To=xxxxxxx65542' \
--data-urlencode 'From=+xxxxxxx4215' \
-d 'Url=https://api.twilio.com/2010-04-01' \
-d 'Method=GET' \
-d 'FallbackMethod=GET' \
-d 'StatusCallbackMethod=GET' \
-d 'Record=false' \
-u ACbe68cddxxxxxxxxxxxx3aba243cc4cdb:0f442xxxxxxxxxxxxxxxxxxx
好的,我想知道如何从ESP8266 nodeMcu v0.9模块发送短信。使用arduino ide 1.6.4,它可以像arduino一样工作 总之,我发现它只显示了一种发送短信的简单方式 这是它希望您发送的CURL消息
$ curl -X POST http://textbelt.com/text \ -d number=5551234567 \ -d "message=I sent this message for free with textbelt.com"
因此,为了转换为正常的HTTPPOST命令,我执行了以下操作。(这在Arduino IDE中工作)
number和message是字符串对象
String messageToSend = "number="+number+"&message="+message;
client.print("POST /text HTTP/1.1\r\n");
client.print("Host: textbelt.com\r\n");
client.print("Content-Type: application/x-www-form-urlencoded\r\n");
client.print("Content-Length: ");
client.print(messageToSend.length());
client.print("\r\n\r\n");
client.print(messageToSend);
起初我尝试不使用内容类型,但似乎不起作用。所以我不得不添加我发送的内容类型
如果你用WireShark监控网络流量,你会看到
POST /text HTTP/1.1\r\n
Host: textbelt.com\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length: 48\r\n
\r\n
number=5551234567&message=this is a text message
我可能已经能够使用较少的文本和text/plain作为内容类型,但我认为它可能需要应用程序urlencoded类型才能工作
希望这能帮助其他尝试将curl转换为http的人。我不确定您的答案的底线是什么。我的请求到底有多像???@Curnelious请澄清您的问题。如果我的回答不正确,那么很明显,我不确定你想问什么?你只是再次向我展示了同样的东西,我不明白从你的回答中我的post请求应该是什么样子?上面的curl代码正是你想要的。-X POST用于发出POST请求,--header'yourheaders'用于发送头。您正在寻找PHP代码吗?或者您只是在使用命令行curl。如果您使用的是命令行,那么以上内容就足够了。如果你在你的PHP或ASP.net应用程序中使用它,那么你应该改变你的问题。我有一些api,它向我展示了一个curl代码来做一些事情。然后,我有一些硬件设备,它应该发送一个POST请求,但它没有运行curl,所以我必须使用curl代码,并从中生成一个完整的POST请求,例如,我可以在以下站点中运行:。那么,我将如何使用这个curl代码,并从中创建正确的字段,以便使用该网站发送请求呢?下次请澄清确切的场景。你的问题没有提到lua&你的情况很复杂。现在您将使用哪种编程语言?如果您还打算使用lua,那么硬件必须有一个API来处理,您必须使用该API来获取POST请求,然后使用像“LuaCURL”这样的curl库,而不是使用运行请求。现在,不要问如何与该API交互,请查看它的文档。您能澄清一下您试图将上述curl请求转换为什么吗?不太清楚。我有一些api,它向我展示了一个curl代码来做一些事情。然后,我有一些硬件设备,应该发送一个POST请求,但它没有运行curl,所以我必须使用curl代码,并从中生成一个完整的基本POST请求,例如,我可以在以下站点中运行:。那么,我如何获取这个curl代码,并从中创建正确的字段,以便使用该网站发送请求呢?例如,您有一个无法运行curl的硬件设备,您希望从该设备发出HTTP请求?我有这个权利吗?硬件设备运行的是哪种平台或编程语言?@DevinRader是的。它运行lua..lua本身没有网络IO,所以您必须使用外部库。那你用哪一个?也许你可以用卷曲装订?
POST /text HTTP/1.1\r\n
Host: textbelt.com\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length: 48\r\n
\r\n
number=5551234567&message=this is a text message