2014-10-29 82 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