2013-11-20 4 views
0

Почему это не работает? Я также попытался использовать класс HttpURLConnection, но это тоже не сработало. Страница php не может найти опубликованные данные. Примечание: им новые запросы на почту с java.Java Post Request Not Working

public static String GetURL(String inUrl, String post) { 
    String inputLine = ""; 
    try { 
     if (!inUrl.contains("http")) { 
      throw new Exception("Invalid URL"); 
     } else { 
      Log.writeLog(inUrl); 
      URL url = new URL(inUrl); 

      //send post 
      URLConnection connection = url.openConnection(); 
      //connection.setRequestMethod("POST"); 
      connection.setDoOutput(true); 
      connection.setRequestProperty("Accept-Charset", "UTF-8"); 
      connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); 
      connection.connect(); 

      OutputStream wr = connection.getOutputStream(); 
      wr.write(post.getBytes()); 
      wr.flush(); 
      wr.close(); 

      BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
      inputLine = in.readLine(); 
      in.close(); 
     } 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
     Log.writeLog("Error getting url."); 
    } 

    return inputLine; 
} 

ответ

0

Поскольку вы не указали ошибку, мне трудно понять, где вы поступили не так.

Однако, я думаю, было бы намного проще использовать абстракцию, например HttpClient. Ваш код будет выглядеть так:

URI uri = new URIBuilder() 
     .setURI(inUrl) 
     .addHeader("Accept-Charset", "UTF-8") 
     .addHeader("Content-Type", "application/x-www-form-urlencoded") 
     .build(); 
HttpPost httpPost = new HttpPost(uri); 
httpPost.setEntity(post); 

Больше, чем иметь дело с деталями потока и соединениями низкого уровня.