#java #http
#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();
Я отправляю их на свой сервлет.
но я не знаю, как его извлечь.
существует ли какой-либо метод, такой как getPerameter или другой?
Спасибо.
Ответ №1:
Я не пробовал ваш код, но мне он кажется разумным, за возможным исключением того, что вы, похоже, не отключаете свой HttpURLConnection, когда закончите с ним.
Что происходит, когда вы запускаете код? Вы видите исключение? Можете ли вы сказать, что они достигли сервлета? Что вы видите, если посмотрите на содержимое builder, выполнив System.out.println(builder.toString()
?
Комментарии:
1. я нашел решение. я использую OutputStream out = null; вместо этого используйте OutputStreamWriter.