第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Apache HttpClient 4.5 將 POST 請求重定向到 GET 請求

Apache HttpClient 4.5 將 POST 請求重定向到 GET 請求

函數(shù)式編程 2022-12-15 10:54:02
我正在嘗試點擊一個 post 端點,但它給出了錯誤 302,當(dāng)我在同一臺服務(wù)器上嘗試另一個 get Url 時,它給了我 200。然后我使用 LaxRedirectStrategy() 重定向了 post 請求 post 請求重定向到 get 請求(相同端點唯一的方法名稱是 GET 和 POST)它沒有從 post 方法獲得響應(yīng)。誰能告訴我如何使用 apahce httpClient 4.5 將發(fā)布請求重定向到發(fā)布請求HttpClient client= HttpClientBuilder.create() .setRedirectStrategy(new LaxRedirectStrategy()).build();HttpPost post = new HttpPost("url");post.addHeader("content-type", " application/json");HttpResponse response = client.execute(post);
查看完整描述

2 回答

?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊

我遇到了同樣的問題,我通過使用LaxRedirectStrategy和覆蓋的 getRedirect方法解決了它。

顯然,當(dāng)初始重定向響應(yīng)不同于 307 或 308 時,POST 請求的默認(rèn)行為是將重定向調(diào)用作為 GET 請求。

請參閱: LaxRedirectStrategy 繼承自DefaultRedirectStrategy 。

在我的例子中,重定向響應(yīng)代碼是 302。

因此,如果您想要不同的東西,您可以重寫 getRedirect 方法并提供您自己的實現(xiàn)。

就像是:

new LaxRedirectStrategy() {

        @Override

        public HttpUriRequest getRedirect(HttpRequest request, HttpResponse response, HttpContext context) throws ProtocolException {

            final URI uri = getLocationURI(request, response, context);

            final String method = request.getRequestLine().getMethod();

            if (method.equalsIgnoreCase(HttpHead.METHOD_NAME)) {

                return new HttpHead(uri);

            } else if (method.equalsIgnoreCase(HttpGet.METHOD_NAME)) {

                return new HttpGet(uri);

            } else {

                final int status = response.getStatusLine().getStatusCode();

                if (status == HttpStatus.SC_TEMPORARY_REDIRECT || status == HttpStatus.SC_MOVED_TEMPORARILY) { //HttpStatus.SC_MOVED_TEMPORARILY == 302

                    return RequestBuilder.copy(request).setUri(uri).build();

                } else {

                    return new HttpGet(uri);

                }

            }

        }

    }


查看完整回答
反對 回復(fù) 2022-12-15
?
揚(yáng)帆大魚

TA貢獻(xiàn)1799條經(jīng)驗 獲得超9個贊

  HttpClient httpClient =

        HttpClients.custom().setRedirectStrategy(new LaxRedirectStrategy() {


            /*

             * (non-Javadoc)

             * 

             * @see org.apache.http.impl.client.DefaultRedirectStrategy#

             * getRedirect(org.apache.http.HttpRequest,

             * org.apache.http.HttpResponse,

             * org.apache.http.protocol.HttpContext)

             */

            @Override

            public HttpUriRequest getRedirect(

                HttpRequest request, HttpResponse response,

                HttpContext context) throws ProtocolException

        {


                final URI uri = getLocationURI(request, response, context);

                final String method = request.getRequestLine().getMethod();

                if (method.equalsIgnoreCase(HttpPost.METHOD_NAME)) {


                    HttpPost post = new HttpPost(uri);

                    post.setEntity(entity);

                    return post;

                } else if (method.equalsIgnoreCase(HttpHead.METHOD_NAME)) {

                    return new HttpHead(uri);

                } else if (method.equalsIgnoreCase(HttpGet.METHOD_NAME)) {

                    return new HttpGet(uri);

                } else {

                    final int status =

                        response.getStatusLine().getStatusCode();

                    return status == HttpStatus.SC_TEMPORARY_REDIRECT

                        ? RequestBuilder.copy(request).setUri(uri).build()

                        : new HttpGet(uri);

                }

            }


        })


查看完整回答
反對 回復(fù) 2022-12-15
  • 2 回答
  • 0 關(guān)注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號