On Fri, 2006-08-04 at 22:38 +0200, Roland Weber wrote: > Hello Jaya, > > > When I set the content header on the post method I am > > not able to parse the parameters on the backend i.e > > request.getParameters returns null. > > Do not touch the Content-Type header. It's one of the > things that's handled by HttpClient. Whatever you do > to that header can only make things worse. > > > I am currently sending Latin-1 characters but we need > > to make it UTF-8 compliant. Basically my question is > > how do I change the charset for the request body? > > > > Here's what I am doing right now that doesn't work: > > > > // Create a method instance. > > PostMethod postmethod= new PostMethod(url); > > postmethod.setRequestHeader("Content-Type", > > "application/x-www-form-urlencoded; charset=utf-8");); > > www-form-urlencoded is US-ASCII by definition. The only > charset allowed in URLs is US-ASCII. It is pure luck > (or tolerant behavior of libraries and servers) that it > worked with Latin-1 at all. > > > // set the input parameters > > Iterator it = paramList.keySet().iterator(); > > while (it.hasNext()) { > > String paramName = (String) it.next(); > > postmethod.addParameter(paramName, > > paramList.get(paramName)); > > } > > If you need to support charsets, you can't use > PostMethod.addParameter(). Use PostMethod.setRequestEntity() > instead, with a MultiPartRequestEntity: > http://jakarta.apache.org/commons/httpclient/apidocs/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.html > You can set the HTTP_CONTENT_CHARSET parameter to UTF-8: > http://jakarta.apache.org/commons/httpclient/apidocs/org/apache/commons/httpclient/params/HttpMethodParams.html#HTTP_CONTENT_CHARSET >
MultiPartRequestEntity may be an overkill in this situation. This should suffice: NameValuePair[] params = new NameValuePair[] { new NameValuePair("name", "value") }; String content = EncodingUtil.formUrlEncode(params, "UTF-8"); StringRequestEntity entity = new StringRequestEntity(content, PostMethod.FORM_URL_ENCODED_CONTENT_TYPE, "US-ASCII"); Oleg > hope that helps, > Roland > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]