您好,登錄后才能下訂單哦!
怎么解決java中的http請(qǐng)求亂碼?針對(duì)這個(gè)問題,今天小編總結(jié)了這篇文章,希望能幫助更多想解決這個(gè)問題的朋友找到更加簡(jiǎn)單易行的辦法。
HTTP簡(jiǎn)介
HTTP又名超文本傳輸協(xié)議(HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。設(shè)計(jì)HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法。1960年美國(guó)人Ted Nelson構(gòu)思了一種通過計(jì)算機(jī)處理文本信息的方法,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標(biāo)準(zhǔn)架構(gòu)的發(fā)展根基。Ted Nelson組織協(xié)調(diào)萬維網(wǎng)協(xié)會(huì)(World Wide Web Consortium)和互聯(lián)網(wǎng)工程工作小組(Internet Engineering Task Force )共同合作研究,最終發(fā)布了一系列的RFC,其中著名的RFC 2616定義了HTTP 1.1。
HTTP請(qǐng)求亂碼解決方案一
接著上面的代碼,用我們最常用的方式,一行一行的讀,charset 同上面一樣。
StringBuffer sb = new StringBuffer(""); in = new BufferedReader(new InputStreamReader(inStream, charset)); String line = ""; while ((line = in.readLine()) != null){ sb.append(line); } result = sb.toString();
HTTP請(qǐng)求亂碼解決方案二
這也是最簡(jiǎn)單的方式,主要是用IOUtils
工具類。
URL realUrl = new URL(url); // 打開和URL之間的連接 conn = (HttpURLConnection) realUrl.openConnection(); // 發(fā)送POST請(qǐng)求必須設(shè)置如下兩行 conn.setRequestMethod(StringUtils.upperCase(type));// 提交模式 conn.setDoInput(true); conn.setDoOutput(true); conn.setUseCaches(false); conn.setRequestProperty("Connection", "close"); conn.setConnectTimeout(3000); //設(shè)置連接主機(jī)超時(shí)(單位:毫秒) conn.setReadTimeout(2000); //設(shè)置從主機(jī)讀取數(shù)據(jù)超時(shí)(單位:毫秒) //省略一些代碼 //獲取InputStream InputStream inStream = conn.getInputStream(); //通過IOUtils 轉(zhuǎn)化,把流轉(zhuǎn)換為字符串。 //charset為編碼格式,可選為"utf-8","gbk","gb2312"等等 String result = IOUtils.toString(inStream,charset);
關(guān)于解決java中的http請(qǐng)求亂碼的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。