兩個(gè)程序間通信(三):http

轉(zhuǎn)載來源:http://blog.sina.com.cn/s/blog_a1304cff0101a6j4.html

假設(shè)你的java項(xiàng)目要和一個(gè)php項(xiàng)目通信,你想傳遞變量過去,那么可采用如下式:

HttpClient httpClient = new HttpClient();    
PostMethod post = new PostMethod(url);    //php端提供的接收方法url  
post.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=gb2312");   

NameValuePair[] param = {   
        new NameValuePair("param1",value1),   
        new NameValuePair("param2",value2),   
    };      

post.setRequestBody(param);      
httpClient.executeMethod(method);   
String response = method.getResponseBodyAsString();   //用流接收更好。         
post.releaseConnection();

這樣,將參數(shù)傳遞過去,在php端,建立一個(gè)方法,暴露給外部,即可以通過url訪問到該方法即可。php方法return的值就是response的值。注意如果不指定charset,則默認(rèn)字符集是iso-8859-1。如果php端要向java項(xiàng)目傳遞數(shù)據(jù),那么php端要用到curl post數(shù)據(jù)過來,注意要設(shè)置header,主要指定字符集,否則中文亂碼,java端要將iso-8859-1轉(zhuǎn)成utf-8.在java端,新建一個(gè)servlet即可,它的dopost方法,將接收php curl post過來的數(shù)據(jù)。在回寫的時(shí)候,這樣:

response.getWriter().write("123456");        
response.getWriter().flush();

php端得到123456; 因?yàn)?個(gè)項(xiàng)目有共同的數(shù)據(jù)格式http,所以可以這樣通信,這就是協(xié)議的力量。共同遵守此數(shù)據(jù)格式。其實(shí)用http,數(shù)據(jù)要經(jīng)過封裝,最高效還是socket,php端也可以進(jìn)行socket操作,似乎越底層的效率越高。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,029評(píng)論 25 709
  • 1. 我想給正準(zhǔn)備從成都一所旅游學(xué)校離職,然后回到自己所喜歡男生的小城市的妹妹——貓貓,講個(gè)故事。 呃,一個(gè)不夠。...
    唐詩遠(yuǎn)閱讀 6,502評(píng)論 247 151
  • 女兒可能像極了我小時(shí)候,很愛漂亮,很愛打扮。在家時(shí)會(huì)玩玩化妝,還幫我也抹點(diǎn)口紅,讓我美美。從一開始的緊張多...
    靜等花開之心路閱讀 283評(píng)論 1 6
  • 當(dāng)你的 app 版本更新之后,一般情況下用戶是不會(huì)知道的,只有等到 App Store 的圖標(biāo)上有一個(gè)大大的"1"...
    so_what閱讀 1,158評(píng)論 3 5

友情鏈接更多精彩內(nèi)容