国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java.io.IOException: Server returned HTTP response code: 400 for URL: http://xxxx

這篇具有很好參考價(jià)值的文章主要介紹了java.io.IOException: Server returned HTTP response code: 400 for URL: http://xxxx。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

初識(shí)篇

1.0介紹

1.1自我介紹

大家好,我是IT擺爛工程師,今天正式在博客上發(fā)布文章,請(qǐng)大家多多支持!??!

1.2寫(xiě)csdn博客初衷

原因是記錄一些關(guān)于java的編程知識(shí),在工作中的一些困難點(diǎn),博主也是編程菜鳥(niǎo),希望在探索的過(guò)程中一步步變“禿”,最重要的是記錄自己的成長(zhǎng)歷程。

接下來(lái)就開(kāi)始本篇博客的主要內(nèi)容了

2.0對(duì)接接口

2.1java.io.IOException: Server returned HTTP response code: 400 for URL: http://xxxx

以上錯(cuò)誤是對(duì)接接口常見(jiàn)的錯(cuò)誤,是怎么形成的呢,菜鳥(niǎo)博主也是不太會(huì),所以記錄一下。

2.2解決

可能出現(xiàn)錯(cuò)誤的原因

  1. 可能是沒(méi)有做字符轉(zhuǎn)義
  2. 可能是沒(méi)有了解完全第三方接口
  3. ........

2.2.1第一種錯(cuò)誤,解決代碼如下

UrlUtil.sendGetHttpUrlUrlUtil.sendGetHttpUrlURLEncoder.encode("張三 =","UTF-8")    //調(diào)用端
    @GetMapping("/doGetLogin")
    public Map<String, Object> doGetLogin() throws IOException {
        System.out.println("調(diào)用方");
        String urlstr="name=張三 =&pwd=123456=";  //請(qǐng)注意張三后面有一個(gè)空格
        String newUrl="http://127.0.0.1:7777/user/login"+"?"+urlstr;
        String str = UrlUtil.sendGetHttpUrl(newUrl,"token"); //工具包網(wǎng)上有
        Map map = JSONObject.parseObject(str, Map.class); //引入fastjson依賴
        return map;
    }
    @GetMapping("/doGetLogin2")
    public Map<String, Object> doGetLogin2() throws IOException {
        System.out.println("調(diào)用方");
        String urlstr ="name="+ URLEncoder.encode("張三 =","UTF-8")+"&pwd="+URLEncoder.encode("123456=","UTF-8");
        String newUrl="http://127.0.0.1:7777/user/login"+"?"+urlstr;
        String str = UrlUtil.sendGetHttpUrl(newUrl,"token");
        Map map = JSONObject.parseObject(str, Map.class);
        return map;
    }
    
    //第三方接口端
    @GetMapping("/login")
    public R login(@RequestParam(required = false) Map<String, Object> map, HttpServletRequest request) throws UnsupportedEncodingException {
        System.out.println("模擬第三方接口");
        System.out.println(map.toString());
        System.out.println(request.getQueryString());
        System.out.println(request.getHeader("Authorization")); //獲取token
        if (map.get("name") != null && map.get("pwd") !=null) {
            if (map.get("name").equals("張三 =") && map.get("pwd").equals("123456=")) {
                return R.ok();
            }
            return R.error("賬號(hào)和密碼輸入不正確");
        }else {
            return R.error("賬號(hào)和密碼不能為空");
        }
    }

注意:

  1. 使用第一種方法會(huì)報(bào)錯(cuò),因?yàn)橛锌崭褡址?,沒(méi)有進(jìn)行轉(zhuǎn)義,所以會(huì)報(bào)錯(cuò)誤

    java.io.IOException: Server returned HTTP response code: 400 for URL: http://127.0.0.1:7777/user/login?name=張三 =&pwd=123456=
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0]
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0]
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0]
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[na:1.8.0]
    	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1888) ~[na:1.8.0]
    	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1883) ~[na:1.8.0]
    	at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0]
    	at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1882) ~[na:1.8.0]
    	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1455) ~[na:1.8.0]
    	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439) ~[na:1.8.0]

    最主要的是name=張三 =&pwd=123456=,沒(méi)有進(jìn)行轉(zhuǎn)義

  2. 使用第二種方式進(jìn)行調(diào)用就不會(huì)出現(xiàn)錯(cuò)誤

    name=%E5%BC%A0%E4%B8%89+%3D&pwd=123456%3D
    原因是張三 =轉(zhuǎn)義成%E5%BC%A0%E4%B8%89+%3D這個(gè)字符串了,可以進(jìn)行http請(qǐng)求調(diào)用 空格轉(zhuǎn)為+號(hào)了,最主要的空格出現(xiàn)在url中會(huì)破壞這個(gè)http請(qǐng)求路徑,所有要進(jìn)行轉(zhuǎn)義。

  3. URLEncoder.encode("張三 =","UTF-8") --java.net.URLEncoder

    可以進(jìn)行對(duì)"張三 ="這個(gè)字符串轉(zhuǎn)義成 %E5%BC%A0%E4%B8%89+%3D
  4. 服務(wù)器應(yīng)該是給url做了處理,所以不需要自己手動(dòng)進(jìn)行url路徑轉(zhuǎn)義回來(lái),但也可以手動(dòng)進(jìn)行轉(zhuǎn)義

    System.out.println(URLDecoder.decode("轉(zhuǎn)義過(guò)后的字符串(%E5%BC%A0%E4%B8%89+%3D)", "UTF-8"));

    可能有工具類(lèi)封裝了,但是博主沒(méi)找^_^

  5. 最后附上我的--UrlUtil.sendGetHttpUrl

    /**
     * get請(qǐng)求
     * @param url 請(qǐng)求地址
     * @param token 請(qǐng)求頭攜帶的token
     * @return 返回第三方接口的返回信息(一般是code,data等數(shù)據(jù))
     * @throws IOException
     */
    public static String sendGetHttpUrl(String url,String token) throws IOException {
        URL realUrl= new URL(url);
        URLConnection connection=realUrl.openConnection();
        //設(shè)置請(qǐng)求超時(shí)
        connection.setConnectTimeout(6000);
        //設(shè)置通用的請(qǐng)求屬性頭
        connection.setRequestProperty("accept","*/*");
        connection.setRequestProperty("connection","Keep-Alive");
        connection.setRequestProperty("user-agent","Mozilla/4.0(compatiable;MSIE 6.0; Windows NT 5.1; sv1)");
        if (token != null) {
            connection.setRequestProperty("Authorization",token);
        }
        connection.connect();
        //設(shè)置響應(yīng)超時(shí)
        connection.setReadTimeout(6000);
        //獲取所有響應(yīng)頭字段
        Map<String, List<String>> map= connection.getHeaderFields();
        for(String key :map.keySet()){

        }
        //定義bufferedReader字符流讀取URL的響應(yīng)
        BufferedReader bred=new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String line="";
        String str="";
        while((line=bred.readLine()) !=null){
            str+=line;
        }
        System.out.println(str);
        //關(guān)閉 流
        bred.close();
        return str;
    }

2.2.2第二種錯(cuò)誤--不了解第三方接口

  1. 這個(gè)博主就無(wú)能為力了

    只能說(shuō)是多看多學(xué)多寫(xiě)多問(wèn)

  2. 如果是官方的接口,可以去開(kāi)放平臺(tái)找接口文檔

2.2.3其他的就不知道咯,如果有也可以留言,一起研究共同進(jìn)步!!

最后在這里謝謝大家的瀏覽。祝大家工作順利,準(zhǔn)時(shí)下班!?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-554473.html

到了這里,關(guān)于java.io.IOException: Server returned HTTP response code: 400 for URL: http://xxxx的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Minio出現(xiàn)Non-XML response from server. Response code: 400, Content-Type: text/xml; ch的解決

    Minio出現(xiàn)Non-XML response from server. Response code: 400, Content-Type: text/xml; ch的解決

    出現(xiàn)這個(gè)問(wèn)題,基本原因的是因?yàn)槟愕膍inio的配置出現(xiàn)了錯(cuò)誤。 這里要注意,要使用的是Minio啟動(dòng)的時(shí)候人家給你的端口和用戶名以及密碼 然后再去配置Minio的client 然后編寫(xiě)代碼的時(shí)候先嘗試訪問(wèn)桶,能訪問(wèn)到桶在進(jìn)行接下來(lái)的步驟 然后發(fā)送請(qǐng)求做一個(gè)測(cè)試即可

    2024年02月11日
    瀏覽(93)
  • Selenium 問(wèn)題 java.io.IOException: Invalid Status code=403 text=Forbidden

    0. 異常信息 1. 增加啟動(dòng)參數(shù) ? 微笑的java 歡迎關(guān)注轉(zhuǎn)發(fā)評(píng)論點(diǎn)贊溝通,讓編碼不在孤單。

    2024年02月11日
    瀏覽(32)
  • java selenium問(wèn)題解決,版本號(hào)對(duì)應(yīng),仍報(bào)錯(cuò)java.io.IOException: Invalid Status code=403 text=Forbidden

    java selenium問(wèn)題解決,版本號(hào)對(duì)應(yīng),仍報(bào)錯(cuò)java.io.IOException: Invalid Status code=403 text=Forbidden

    報(bào)錯(cuò)截圖 java.io.IOException: Invalid Status code=403 text=Forbidden Exception in thread \\\"main\\\" org.openqa.selenium.remote.http.ConnectionFailedException: Unable to establish websocket connection to http://localhost:60613/devtools/browser/747cc62c-8bb8-4828-ab4e-afa69400a604 Build info: version: \\\'4.1.2\\\', revision: \\\'9a5a329c5a\\\' System info: host: \\\'LAPTOP-

    2024年02月11日
    瀏覽(18)
  • HTTP接口調(diào)用時(shí)報(bào)錯(cuò) java.io.IOException: Connection reset by peer解決辦法

    在接口調(diào)用時(shí),遇到如下報(bào)錯(cuò): Caused by: java.io.IOException: Connection reset by peer ? ? ? ? at sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[?:1.8.0_241] ? ? ? ? at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) ~[?:1.8.0_241] ? ? ? ? at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) ~[?:1.8.0_241] ?

    2024年04月26日
    瀏覽(36)
  • Unable to tunnel through proxy. Proxy returns “HTTP/1.1 400 Bad request

    今天通過(guò)nginx代理下載pdf報(bào)這個(gè)錯(cuò),網(wǎng)上查了很多資料,說(shuō)的大部分都是Android studio這個(gè)的解決辦法,幾乎沒(méi)有針對(duì)nginx的處理,部分說(shuō)是需要配hosts,配了hosts也沒(méi)用,有一些說(shuō)是要增加proxy_set_header Host $http_host;這個(gè)配置,也不能解決我的問(wèn)題,這邊記錄一下針對(duì)我這邊出現(xiàn)問(wèn)

    2024年02月12日
    瀏覽(18)
  • 【方案探討】 出現(xiàn)java.io.IOException解決方法

    歡迎來(lái)到我的博客!在這里,我將分享我對(duì)問(wèn)題的獨(dú)特見(jiàn)解和解決方案。通過(guò)這篇博客,我希望能夠?yàn)槟鷰?lái)新的思考方式,啟發(fā)您尋找問(wèn)題的不同角度,并探索創(chuàng)新的解決方案。 每個(gè)問(wèn)題都是一個(gè)機(jī)會(huì),是一個(gè)學(xué)習(xí)的過(guò)程。在這里,我將分享我對(duì)問(wèn)題的思考過(guò)程和解決方案

    2024年04月25日
    瀏覽(19)
  • java.io.IOException: Broken pipe管道斷開(kāi)

    一、Broken pipe產(chǎn)生原因分析 1.當(dāng)訪問(wèn)某個(gè)服務(wù)突然服務(wù)器掛了,就會(huì)產(chǎn)生Broken pipe; 2.客戶端讀取超時(shí)關(guān)閉了連接,這時(shí)服務(wù)器往客戶端再寫(xiě)數(shù)據(jù)就發(fā)生了broken pipe異常! 3.端口沖突,地址已被使用,也會(huì)導(dǎo)致Broken pipe 二、方案 1.問(wèn)題一分析服務(wù)器為什么掛了。 2.問(wèn)題二使用jp

    2024年02月10日
    瀏覽(17)
  • 上傳文件提示java.io.IOException: java.io.FileNotFoundException:(系統(tǒng)找不到指定的路徑。)

    上傳文件提示java.io.IOException: java.io.FileNotFoundException:(系統(tǒng)找不到指定的路徑。)

    關(guān)鍵信息: java.io.IOException: java.io.FileNotFoundException: C:UsersbrendonAppDataLocalTemptomcat.6510816303036534023.8099workTomcatlocalhostROOTinvoiceoriginalfile2023-02-1373432e18330dec9a05af2e74d068bfba83e0a88d.pdf (系統(tǒng)找不到指定的路徑。) Caused by: java.io.FileNotFoundException: C:UsersbrendonAppDataLocalTemptomcat

    2024年02月12日
    瀏覽(25)
  • Http: server gave HTTP response to HTTPS client 解決方法

    如果沒(méi)有 /etc/docker/daemon.json 這個(gè)文件,可以自己新建一個(gè) 情況1.這種寫(xiě)法是沒(méi)有配置Docker加速器的情況下 在 /etc/docker/daemon.json 中設(shè)置以下: // 單個(gè)私服的寫(xiě)法 { ????\\\"insecure-registries\\\": [\\\"registry的IP地址:端口號(hào)\\\"] } // 多個(gè)私服的寫(xiě)法 { ????\\\"insecure-registries\\\": [\\\"registry1的IP地址

    2024年02月03日
    瀏覽(14)
  • java.io.IOException: Connection reset by peer

    接口返回的時(shí)候報(bào)錯(cuò),java.io.IOException: Connection reset by peer,具體報(bào)錯(cuò)信息如下: 原因: 接口返回的數(shù)據(jù)量太大報(bào)錯(cuò), 解決辦法: 修改nginx緩存配置信息。 nginx原配置信息: nginx修改后信息: 注意: \\\"proxy_busy_buffers_size\\\"必須等于或大于\\\"proxy_buffer_size\\\"的最大值。

    2024年02月16日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包