如果是已經(jīng)有了URL的接口
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比和政網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式和政網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋和政地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
URL url = new URL(接口);
創(chuàng)建鏈接對方接口對象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
設(shè)置請求屬性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
設(shè)置是否向httpUrlConnection輸出,設(shè)置是否從httpUrlConnection讀入
conn.setDoOutput(true);
conn.setDoInput(true);
最后斷開鏈接,保證速度
conn.disconnect();
基本就這樣用需要更多的就要自己看api了
1、MESSAGE消息
1)頭字段填寫說明
Call-id: 必選
CSeq: 必選
From: 必選
To: 必選
Max-Forwards: 必選
Via: 必選
常用的可選參數(shù):
指定的消息體
2)消息實例
發(fā)送MESSAGE請求消息給192.168.2.48的6010端口,參考消息如下(帶了“Hello”的消息體):
MESSAGE sip:1897778888@192.168.2.48:6010 SIP/2.0
Call-ID: 8e12c17121ac4121bf927f6fd8013358@192.168.2.89
From: sip:01052237300@192.168.2.89;tag=-0037-708c9a5cba8dd878
To: sip:1897778888@192.168.2.89
CSeq: 1 MESSAGE
Via: SIP/2.0/UDP 192.168.2.89:14010;branch=z9hG4bK--22bd7222
Max-Forwards: 30
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: sip:192.168.2.89:14010
Content-Type: text/plain
Content-Length: 5
Hello
收到來自192.168.2.48的6010端口的返回消息,參考消息如下(修改了消息體的內(nèi)容,變成了“Hello amigo”):
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.2.89:14010;branch=z9hG4bK--22bd7222
From: sip:01052237300@192.168.2.89;tag=-0037-708c9a5cba8dd878
To: sip:1897778888@192.168.2.89;tag=-002-3c18e810ab17c76f
Call-ID: 8e12c17121ac4121bf927f6fd8013358@192.168.2.89
CSeq: 1 MESSAGE
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: sip:192.168.2.48:54010
Content-Type: text/plain
Content-Length: 11
主要有以下幾點原因:
1、網(wǎng)絡(luò)不通,在調(diào)用的機器上評一下對方服務(wù)器ip或域名;
2、如果接口url用的域名,排查是不是DNS問題,這種問題使用方法1時ping域名應(yīng)該是不通的,直接ping ip可以通;
3、請求接口時設(shè)置的超時時間太短,httpclient可以設(shè)置超時時間,如果網(wǎng)絡(luò)不穩(wěn)定的話會導(dǎo)致請求通信還沒有完成就達到超時時間;
4、接口url錯誤,這種理論上會報404,但是如果人家要求使用https,而你用的http協(xié)議,有可能導(dǎo)致超時;
5、對方接口肯定有權(quán)限驗證,看是以什么方式鑒權(quán),如果用的除token以外的方式鑒權(quán),有可能會鑒權(quán)出錯一直重試而導(dǎo)致超時;
6、代碼錯誤,這種是你客戶端有問題,尤其你提到使用了連接池,確保你從連接池獲取的鏈接是可用的,鏈接使用完成后需要返還給池,記住是返還而不是關(guān)閉。使用連接池有一個缺點,就是對方接口如果不支持長連接的話,你使用連接池是沒有效果的,可能一個連接使用一兩次就連接不上了,需要重新創(chuàng)建鏈接。一般接口提供方都會提供demo,可以使用他們提供的demo嘗試請求看通不通。
暫時想到可能性只有這么多,你也可以自己查詢相關(guān)資料。
String sendPost(String jsonStr, String path)
throws IOException {
byte[] data = jsonStr.getBytes();
java.net.URL url = new java.net.URL(path);
java.net.HttpURLConnection conn =
(java.net.HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5 * 1000);// 設(shè)置連接超時時間為5秒
conn.setReadTimeout(20 * 1000);// 設(shè)置讀取超時時間為20秒
// 使用 URL 連接進行輸出,則將 DoOutput標志設(shè)置為 true
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
//conn.setRequestProperty("Content-Encoding","gzip");
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
OutputStream outStream = conn.getOutputStream();// 返回寫入到此連接的輸出流
outStream.write(data);
outStream.close();//關(guān)閉流
String msg = "";// 保存調(diào)用http服務(wù)后的響應(yīng)信息
// 如果請求響應(yīng)碼是200,則表示成功
if (conn.getResponseCode() == 200) {
// HTTP服務(wù)端返回的編碼是UTF-8,故必須設(shè)置為UTF-8,保持編碼統(tǒng)一,否則會出現(xiàn)中文亂碼
BufferedReader in = new BufferedReader(new InputStreamReader(
(InputStream) conn.getInputStream(), "UTF-8"));
msg = in.readLine();
in.close();
}
conn.disconnect();// 斷開連接
return msg;
}
標題名稱:調(diào)用鑒權(quán)接口代碼java Java接口鑒權(quán)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article44/dodeiee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、App設(shè)計、網(wǎng)站建設(shè)、微信公眾號、網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)