2011-09-28 3 views
16

Я бы хотел отправить форму сообщения с помощью java на веб-сайте. Я придумал это, но я не собираюсь делать дальше, или если это даже правильный путь.Как отправить форму сообщения с помощью java?

URL url = new URL("http://127.0.0.1"); 
URLConnection conn=url.openConnection(); 
conn.setDoOutput(true); 
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
wr.write(data); 

Форма сообщения выглядит следующим образом.

<form action="prikaz4.php" method="post"> 
    <select name="igralec"/> 
    <option value="Kobe Bryant">Kobe Bryant</option> 
    <option value="Dwayne Wade">Dwayne Wade</option> 
    <input type="submit" /> 
</form> 

ответ

25

Вы можете написать код, подобный этому:

import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.HttpException; 
import org.apache.commons.httpclient.HttpStatus; 
import org.apache.commons.httpclient.methods.PostMethod; 
import org.apache.http.impl.client.HttpClients; 

public class PostReqEx { 

    public void sendReq(String url,String email,String fname){ 
    HttpClient httpClient = HttpClients.createDefault(); 
    PostMethod postMethod = new PostMethod(url); 
    postMethod.addParameter("Email", email); 
    postMethod.addParameter("fname", fname); 
    try { 
     httpClient.executeMethod(postMethod); 
    } catch (HttpException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    if (postMethod.getStatusCode() == HttpStatus.SC_OK) { 
     String resp = postMethod.getResponseBodyAsString(); 
    } else { 
     //...postMethod.getStatusLine(); 
    } 
    } 
} 
+3

+1. Я бы хотел, чтобы люди перестали изобретать колесо. – pap

+0

Я нашел решение здесь полезным: http://stackoverflow.com/questions/36568518/testing-form-posts-through-mockmvc –

+0

Использование PostMethod устарело для текущих общих ресурсов (версия 4), используйте UrlEncodedFormEntity: https: // stackoverflow .com/а/8129350/1904815 – JonnyJD

2

Возможно, вы захотите рассмотреть вопрос об использовании HttpClient library from Apache. Это класс HttpPost, который очень прост в использовании.

1

Проект Apache HttpClient справится с этим лучше для вас.

или вы можете попробовать этот код:

// Using java.net.URL and 
  //java.net.URLConnection 
  URL url = new URL("http://jobsearch.dice.com/jobsearch/jobsearch.cgi"); 
  URLConnection connection = url.openConnection(); 
  connection.setDoOutput(true); 
  OutputStreamWriter out = newOutputStreamWriter(uc.getOutputStream(), "8859_1"); 
  out.write("username=bob&password="+password+""); 
  // remember to clean up 
  out.flush(); 
  out.close(); 
Смежные вопросы