起因:在一次修改https過程中,QQ健康要同步的網(wǎng)絡(luò)請求代碼太舊了蝶柿,報錯丈钙,于是我就負責(zé)把它的網(wǎng)絡(luò)請求改了,改成我們統(tǒng)一的網(wǎng)絡(luò)請求 StringZIPRequest
后來由于什么原因沒測試交汤,最后最后發(fā)現(xiàn)問題了.......
看了一中午沒調(diào)試出什么問題雏赦,因為包括參數(shù)名稱,參數(shù)類型都是完全一樣的蜻展,為什么ios請求成功喉誊,我的就不行呢?纵顾?
我就改了一個網(wǎng)絡(luò)請求方式啊伍茄,其它也沒變啊,為什么就是不行呢施逾。
大米跟我說敷矫,是因為編碼的問題,Content-Type
的值設(shè)置為 Content-Type application/x-www-form-urlencoded
把這個設(shè)置上就好了汉额。
但是我們統(tǒng)一的這個請求不太好改曹仗,要改都改了,所以索性 一不做二不休蠕搜,改了怎茫,重新?lián)Q一種請求網(wǎng)絡(luò) HttpUrlConnection
,又重新試了一次妓灌,好了轨蛤。部分代碼如下:
try {
urlConn.setRequestMethod("POST");
urlConn.setUseCaches(false);
// 配置本次連接的Content-type,配置為application/x-www-form-urlencoded的
urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
// 連接虫埂,從postUrl.openConnection()至此的配置必須要在connect之前完成祥山,
// 要注意的是connection.getOutputStream會隱含的進行connect。
urlConn.connect();
//DataOutputStream流
DataOutputStream out = new DataOutputStream(urlConn.getOutputStream());
//要上傳的參數(shù)
String content = "oauth_consumer_key=" + URLEncoder.encode(qqInfoBean.getOauth_consumer_key(), "UTF_8")+
"&access_token="+URLEncoder.encode(qqInfoBean.getAccess_token(), "UTF_8")+
;
//將要上傳的內(nèi)容寫入流中
out.writeBytes(content);
//刷新掉伏、關(guān)閉
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
最后問題解決缝呕,寫個筆記做個記錄,記錄自己在Android路上遇到的各種奇葩坑斧散。
奉上參考文章地址:http://blog.csdn.net/nrs12345/article/details/18358865