如何将数据传递给使用带有post方法的httpcommunicator发送的servlet

时间:2011-05-20 07:42:20

标签: java http

我正在尝试使用httpcommunicator类发送数据。 这是我的代码。

public String postData(String address,String dataToBePosted) throws MalformedURLException,IOException,ProtocolException{

    /** set up the http connection parameters */
    HttpURLConnection    urlc = (HttpURLConnection) (new URL(address)).openConnection();
    urlc.setRequestMethod("POST");
    urlc.setDoOutput(true);
    urlc.setDoInput(true);
    urlc.setUseCaches(false);
    urlc.setAllowUserInteraction(false);
    urlc.setRequestProperty("Content-type", "text/xml; charset=" + "UTF-8");

    /** post the data */
    OutputStream out = null;
    out = urlc.getOutputStream();
    Writer writer = new OutputStreamWriter(out, "UTF-8");
    writer.write(dataToBePosted);
    writer.close();
    out.close();

    /** read the response back from the posted data */
    BufferedReader bfreader = new BufferedReader(new InputStreamReader(urlc.getInputStream()));
    StringBuilder builder = new StringBuilder(100);
    String line = "";
    while ((line = bfreader.readLine()) != null) {
        builder.append(line+"\n");
    }
    bfreader.close();

    /** return the response back from the POST */
    return builder.toString();

我将它发送到我的servlet。 但我知道如何检索它。 是否有任何方法,如getPerameter或其他?

谢谢。

1 个答案:

答案 0 :(得分:0)

我没有尝试过你的代码,但它对我来说看起来很合理,可能的例外是当你完成它时你似乎没有断开你的HttpUrlConnection。

运行代码时会发生什么?你看到一个例外吗?你能告诉它已经到达了servlet吗?如果您通过System.out.println(builder.toString()查看构建器的内容,您会看到什么?