Как отправить запрос с параметрами POST в Netty? - PullRequest
3 голосов
/ 12 марта 2012

Я пытаюсь отправить запрос с параметрами POST в Netty.

Я искал Netty API, Google и здесь (переполнение стека)

но не нашел хорошего способа сделать это. (Это может быть моя вина в ужасном поисковом умении: '(Если так, я извиняюсь)

Есть ли API, чтобы сделать это легко?

Или я должен сделать это путем кодирования всех параметров и установки его в контенте самостоятельно?

Пожалуйста, дайте мне знать любой хороший способ сделать это.

1 Ответ

4 голосов
/ 13 марта 2012

Ниже приведен пример загрузки файла:

https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/upload

Если вы не хотите загружать файл, просто проигнорируйте многочастный бит MIME.

Попробуйте что-то вроде:

HttpRequest httpReq=new DefaultHttpRequest(HttpVersion.HTTP_1_1,HttpMethod.POST,uri);
httpReq.setHeader(HttpHeaders.Names.HOST,host);
httpReq.setHeader(HttpHeaders.Names.CONNECTION,HttpHeaders.Values.KEEP_ALIVE);
httpReq.setHeader(HttpHeaders.Names.ACCEPT_ENCODING,HttpHeaders.Values.GZIP);
httpReq.setHeader(HttpHeaders.Names.CONTENT_TYPE,"application/x-www-form-urlencoded");     
String params="a=b&c=d";
ChannelBuffer cb=ChannelBuffers.copiedBuffer(params,Charset.defaultCharset());
httpReq.setHeader(HttpHeaders.Names.CONTENT_LENGTH,cb.readableBytes());
httpReq.setContent(cb);

См. Отправка параметров POST с Netty, и почему DefaultHttpDataFactory отсутствует в выпусках?

...