2014-02-06 4 views
0

Я пытаюсь сделать яву сделать новое дополнение к URL Shortener, вот что у меня есть:Java - отправка POST

private void sendPost() throws Exception { 

    String url = "http://shmkane.com/index.php?"; 
    URL obj = new URL(url); 
    HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

    con.setRequestMethod("POST"); 
    con.setRequestProperty("User-Agent", USER_AGENT); 
    con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); 

    String urlParameters = "url=testingThis"; 

    con.setDoOutput(true); 
    DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
    wr.writeBytes(urlParameters); 
    wr.flush(); 
    wr.close(); 

    int responseCode = con.getResponseCode(); 
    System.out.println("\nSending 'POST' request to URL : " + url); 
    System.out.println("Post parameters : " + urlParameters); 
    System.out.println("Response Code : " + responseCode); 

    BufferedReader in = new BufferedReader(
      new InputStreamReader(con.getInputStream())); 
    String inputLine; 
    StringBuffer response = new StringBuffer(); 

    while ((inputLine = in.readLine()) != null) { 
     response.append(inputLine); 
    } 
    in.close(); 

    System.out.println(response.toString()); 

} 

Я хотел бы, чтобы он положил что-то в «Form1», а затем «отправить» here's the site

Я очень к этому знаком, поэтому любая помощь будет большой, возможно, скажите мне, что я делаю неправильно или улучшаю/исправляю код, который у меня есть.

+0

Какие у вас проблемы? –

+0

Я предполагаю, что он не отправляет запрос – shmkane

+0

Выбрасывает исключение? Что это выводит? Откуда вы знаете, что это не работает? –

ответ

0

Этот сайт не поддерживает запись:

<form method="get" id="form1" action="index.php"> 
    <p>&nbsp;</p> 
    <p><br> 
     <input class="textBox" id="url" placeholder="Paste a link to shorten it" type="text" name="url" value=""> 
    </p> 
    <p> 
     <input class="textBox" placeholder="Custom alias" id="alias" maxlength="15" type="text" name="alias" value=""> 
    </p> 
    <div class="button"> 
     <p> 
     <input class="button" type="submit" value="Shorten"> 
     </p> 
<br> 
     <div class="alert-box success"> 
     <center> 
      <a href="" target="_blank"></a> 
     </center> 
     </div> 
     <em>May only contain letters, numbers, dashes and underscores.</em> 
     <p></p> 
    </div> 
    </form> 

Обратите внимание на метод GET. Измените следующим образом:

String urlParameters = "url=testingThis"; 
String url = "http://shmkane.com/index.php?"; 
URL obj = new URL(url + urlParameters); 
HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

con.setRequestMethod("GET"); 

И избавиться от записи в выходной поток.

+0

Спасибо, это сработало, поэтому просто для ясности, запрашиваемый метод зависит от типа формы на веб-сайте? А также, как мне получить ссылку, которую он отправляет мне с сайта? – shmkane

+0

@shmkane да, бывает. Он должен соответствовать ожидаемому HTTP-серверу, чтобы он мог самостоятельно анализировать параметры. Существует несколько способов захвата ссылки, но вам нужно будет прочитать ответ, как вы делаете, а затем каким-то образом проанализировать ответ, используя какой-то стандартный формат. Я бы посоветовал вам искать советы по разбору html. Кроме того, найдите URL-адрес, который возвращает json или xml. –

Смежные вопросы