2014-10-29 100 views
1

我想用java發送一個http請求。這是我的代碼:不會發送所有參數來發布http請求

String AnnonseUrl = "http://webpage.no/insert_annonse.php?info="+info+"&tittel="+tittel+"&bedriftsNavn="+bedriftsNavn+"&kontaktEmail="+kontaktEmail+"&varighet="+varighet+"&frist="+frist+"&url="+url+"&sted="+sted+"&kontaktNavn="+kontaktNavn;    

      URL url = new URL(AnnonseUrl); 
      URLConnection uc = url.openConnection(); 
      BufferedReader in = new BufferedReader(
            new InputStreamReader(
            uc.getInputStream())); 

      in.close(); 

只有前三個參數提交..

如果我COPIE字符串「AnnonseUrl」並粘貼到瀏覽器,然後一切工作正常。

+1

什麼不起作用?爲什麼?你期望會發生什麼?反而發生了什麼?有沒有錯誤? – BackSlash 2014-10-29 11:13:19

回答

0

當執行後的參數在HTTP主體發送: 試試這個:

URL u = new URL("http://www.stackoverflow.com"); 
HttpURLConnection conn = (HttpURLConnection) u.openConnection(); 
conn.setDoOutput(true); 
conn.connect(); 
DataOutputStream wr = new DataOutputStream (
       conn.getOutputStream()); 
wr.writeBytes (urlParameters); 
wr.flush(); 
wr.close(); 

凡urlParameters是一樣的東西:

String urlParameters = 
    "tittel="+URLEncoder.encode(tittel,"UTF-8") 
    +"&bedriftsNavn"+URLEncoder.encode(bedriftsNavn,"UTF-8"); 
+0

當我嘗試此方法時出現錯誤.. [ProtocolException:如果doOutput = false,則無法寫入URLConnection - 調用setDoOutput(true)] – EspenG 2014-10-29 11:37:02

+0

@ user3465589我已更新答案。 – user 2014-10-29 11:52:28