2014-11-05 206 views
0

我正在尝试向web服务发出发布请求,因为它只接受发布请求。我有一个代码向web服务发出POST请求

try { 
     URL url = new URL(createBookUrl + "?bookInfo=" + jsonStr); 
     BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
     String inputLine = in.readLine(); 
     in.close(); 
     BookCreateResponse bookCreateResponse = new BookCreateResponse(); 
     ObjectMapper mapper = new ObjectMapper(); 
     bookCreateResponse = mapper.readValue(inputLine, new TypeReference<BookCreateResponse>(){}); 
     System.out.println(bookCreateResponse); 
    } catch (Exception ex) { 
     log.error(ex.getMessage()); 
    } 

现在我得到错误

Server returned HTTP response code: 405 for URL: ..... 

回答

1

你可以用这个尝试:

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.HttpClientBuilder; 
import org.apache.http.util.EntityUtils; 

    private HttpClient client; 
    private HttpPost requestPost; 

    client = HttpClientBuilder.create().build(); 


    requestPost = new HttpPost(url+params); 
    HttpResponse response = client.execute(requestPost); 
    HttpEntity entiry = response.getEntity(); 
    responseString = EntityUtils.toString(entiry, "UTF-8"); 
+0

在哪个包是那些HttpPost,HttpResponse对象,HttpClientBuilder, – 2014-11-05 20:57:14

+0

我编辑我的回复 – 2014-11-05 20:58:19

+0

是否有添加参数的特殊方式?我在'='符号得到非法字符,因为我在我的应用程序中创建字符串为“someUrl?myParam =”+ someParam – 2014-11-05 22:25:29