简单C执行HTTP POST并使用响应的示例

简单C执行HTTP POST并使用响应的示例

我想创建一个非常简单的C应用程序来执行HTTP发布。它将需要一些参数,并使用它们来构造URL。我只想做一个简单的HTTP POST并在不使用curl的情况下获得响应(这些库不会也不会安装在需要运行的机器上)。

伪代码:

  1. 过程2 args

  2. 将args放入模板URL:http//api.somesite.com/apikey=ARG1&command=ARG2

  3. 在生成的URL上执行POST

  4. 消费回应

我的Google和SO搜索在此问题上没有任何结果。


动漫人物
浏览 885回答 3
3回答

慕侠2389804

杰瑞的回答很棒。但是,它不处理大的响应。处理此问题的简单更改:memset(response,&nbsp;0,&nbsp;sizeof(response));total&nbsp;=&nbsp;sizeof(response)-1;received&nbsp;=&nbsp;0;do&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;printf("RESPONSE:&nbsp;%s\n",&nbsp;response); &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;HANDLE&nbsp;RESPONSE&nbsp;CHUCK&nbsp;HERE&nbsp;BY,&nbsp;FOR&nbsp;EXAMPLE,&nbsp;SAVING&nbsp;TO&nbsp;A&nbsp;FILE. &nbsp;&nbsp;&nbsp;&nbsp;memset(response,&nbsp;0,&nbsp;sizeof(response)); &nbsp;&nbsp;&nbsp;&nbsp;bytes&nbsp;=&nbsp;recv(sockfd,&nbsp;response,&nbsp;1024,&nbsp;0); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(bytes&nbsp;<&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("ERROR&nbsp;reading&nbsp;response&nbsp;from&nbsp;socket"); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(bytes&nbsp;==&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;received+=bytes;}&nbsp;while&nbsp;(1);
打开App,查看更多内容
随时随地看视频慕课网APP