2015-11-16 158 views
0

[求助]在netty中發出HTTP請求時填充請求標頭值

我無法解決以下錯誤。請幫助我調試問題。我得到的錯誤是「無法對ClientCookieEncoder類型的非靜態方法encode(Cookie ..)進行靜態引用。ClientCookieEncoder已被棄用,文檔建議較早版本的靜態修改器用於編碼方法,這在新版本中不存在。

的代碼片段已經從http://netty.io/4.0/xref/io/netty/example/http/snoop/HttpSnoopClient.html

package io.netty.example.http.snoop; 

    ... 
    import io.netty.handler.codec.http.cookie.ClientCookieEncoder; 
    import io.netty.handler.codec.http.cookie.DefaultCookie; 
    .. 

    public final class HttpSnoopClient { 

    ... 

    // Prepare the HTTP request. 
      HttpRequest request = new DefaultFullHttpRequest(
        HttpVersion.HTTP_1_1, HttpMethod.GET, uri.getRawPath()); 
      request.headers().set(HttpHeaders.Names.HOST, host); 
      request.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.CLOSE); 
      request.headers().set(HttpHeaders.Names.ACCEPT_ENCODING, HttpHeaders.Values.GZIP); 

    // Set some example cookies. 
      request.headers().set(
        HttpHeaders.Names.COOKIE, 
        ClientCookieEncoder.encode(
          new DefaultCookie("my-cookie", "foo"), 
          new DefaultCookie("another-cookie", "bar"))); 
    ... 

    } 
+1

你確定你使用的是網狀4 –

+0

目前我使用網狀 - 全4.0? 33.Final.jar在我的圖書館裏d http://netty.io/4.0/xref/io/netty/example/http/snoop/HttpSnoopClient.html文檔作爲參考。 – user2582651

+0

我發現了錯誤。由於日食中的進口導致錯誤。爲了避免我使用過http.cookie.ClientCookieEncoder的已棄用方法。 – user2582651

回答

0

引用的解決方案是:

import io.netty.handler.codec.http.ClientCookieEncoder; 
import io.netty.handler.codec.http.DefaultCookie; 

…. 

// Set some example cookies. 
     request.headers().set(
       HttpHeaders.Names.COOKIE, 
       ClientCookieEncoder.encode(
         new DefaultCookie("my-cookie", "foo"), 
         new DefaultCookie("another-cookie", "bar")));