微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JAVA Http POST请求UTF-8

我的J2EE应用程序能够从JSP页面接收POST请求,没问题.

但是如果我使用另一个java应用程序发送POST请求,则收到的参数不是UTF-8字符串.

这里有我的代码

URL url = new URL("http://localhost:8080/ITUNLPWebInterface/SimpleApi");
HttpURLConnection cox = (HttpURLConnection) url.openConnection();

cox.setDoInput(true);
cox.setDoOutput(true);
cox.setRequestMethod("POST");
cox.setRequestProperty("Accept-Charset","UTF-8");
cox.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
cox.setRequestProperty("charset","UTF-8");

DataOutputStream dos = new DataOutputStream(cox.getoutputStream());
String query = "tool=ner&input=şaşaşa";
dos.writeBytes(query);
dos.close();

难道我做错了什么?

感谢您的回复

解决方法

这项工作!!!
package com.erenerdogan.utils;

import com.erenerdogan.webservice.ServiceInterface;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.httpentity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.httpconnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;

/**
 *
 * @author erenerdogan
 */
public class WebService 
{
private String server;

    public WebService(String server) {
        this.server = server;
    }

private HttpPost createPostRequest(String method,Map<String,String> paramPairs){
    // Creating HTTP Post
    HttpPost httpPost = new HttpPost(server + "/" + method);
    // Building post parameters
    List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(paramPairs.size());
    for (String key : paramPairs.keySet()){
        nameValuePair.add(new BasicNameValuePair(key,paramPairs.get(key)));
            System.out.println("Key : "+ key + " - Value : "+ paramPairs.get(key) );
    }

    // Url Encoding the POST parameters
    try {
        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair,"UTF-8"));
    } catch (UnsupportedEncodingException e) {
        // writing error to Log
        e.printstacktrace();
    }
    return httpPost;
}

public String callServer(String method,String> paramPairs) throws ClientProtocolException,IOException{

    // Creating HTTP client
    HttpClient httpClient = new DefaultHttpClient();

    HttpParams httpParameters = httpClient.getParams();
    httpconnectionParams.setConnectionTimeout(httpParameters,10 * 1000);
    httpconnectionParams.setSoTimeout(httpParameters,3 * 1000);
    HttpResponse httpResponse = httpClient.execute(createPostRequest(method,paramPairs));
    httpentity httpentity = httpResponse.getEntity();
    String xml = EntityUtils.toString(httpentity);

    return xml;
}
}

原文地址:https://www.jb51.cc/java/127468.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐