亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 6081 | 回復(fù): 4
打印 上一主題 下一主題

[C] 如何通過 c/c++ 實(shí)現(xiàn)http請求? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-03-20 10:28 |只看該作者 |倒序?yàn)g覽
下面是一段java程序,功能是向指定的URL短信服務(wù)中心發(fā)送信息,通過服務(wù)中心將短信內(nèi)容發(fā)送給指定的用戶,我想通過C語言實(shí)現(xiàn)這個(gè)功能,請問應(yīng)該怎么處理,
請幫忙看下,謝謝!


import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

public class SendMsg_webchinese {

         public static void main(String[] args)throws Exception
         {
         HttpClient client = new HttpClient();
         PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn");
         post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在頭文件中設(shè)置轉(zhuǎn)碼
        NameValuePair[] data ={ new NameValuePair("Uid", "本站用戶名"),new NameValuePair("Key", "接口安全密碼"),new NameValuePair("smsMob","手機(jī)號(hào)碼"),new NameValuePair("smsText","短信內(nèi)容")};
        post.setRequestBody(data);

         client.executeMethod(post);
         Header[] headers = post.getResponseHeaders();
         int statusCode = post.getStatusCode();
         System.out.println("statusCode:"+statusCode);
         for(Header h : headers)
         {
         System.out.println(h.toString());
         }
         String result = new String(post.getResponseBodyAsString().getBytes("gbk"));
         System.out.println(result);
         post.releaseConnection();
         }
}

論壇徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46處女座
日期:2013-10-24 14:25:01酉雞
日期:2014-04-07 11:54:15
2 [報(bào)告]
發(fā)表于 2014-03-20 10:56 |只看該作者
libcurl。。。。。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-03-20 11:21 |只看該作者
哦了 試試看 謝了!

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-03-20 17:06 |只看該作者
道理是一樣的,也是監(jiān)聽某個(gè)端口,比如80,然后收到請求就處理再回復(fù)。
有幾個(gè)簡單的web server代碼可參考,如Mongoose,只有一個(gè).h和一個(gè).c,非常容易看懂。
libevent庫也提供了一個(gè)http的封裝,這個(gè)是最好用的,幾行代碼就實(shí)現(xiàn)基礎(chǔ)功能了,拿它用在不少項(xiàng)目上。
建議用1.4的版本,代碼比2.x簡單一些。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2014-04-01 01:16 |只看該作者
本帖最后由 xiao_xia_m 于 2014-04-01 01:19 編輯

其實(shí)這個(gè)不是特別難,主要是用HTTP頭填充,比如我打開百度時(shí)候的首頁,用wireshark抓取了瀏覽器發(fā)送出去的報(bào)文
GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
把這一部分send出去,然后就可以recieve了。主要是理解HTTP協(xié)議。
大概流程是這樣的
(1)先從域名轉(zhuǎn)化為ip,
(2)然后建立一個(gè)tcp鏈接,端口一般為80,8080等,網(wǎng)頁一般是80,
(3)再send http頭,前面截取的那一部分,
(4)接收,如果是壓縮的還需要解壓。

歡迎關(guān)注:http://blog.sina.com.cn/u/2241974477
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP