使用Java发送HTTP Post Payload

我正在尝试连接到groovehark API,这是http请求

POST URL http://api.grooveshark.com/ws3.php?sig=f699614eba23b4b528cb830305a9fc77 POST payload {"method":'addUserFavoriteSong",'parameters":{"songID":30547543},"header": {"wsKey":'key","sessionID":'df8fec35811a6b240808563d9f72fa2'}} 

我的问题是如何通过Java发送此请求?

基本上,您可以使用标准Java API来完成它。 检查URLURLConnection ,也许还有HttpURLConnection 。 它们位于java.net包中。

至于API特定签名,请尝试在此处找到sStringToHMACMD5

并记住改变你的API密钥,这是非常重要的,因为每个人都知道它知道。

 String payload = "{\"method\": \"addUserFavoriteSong\", ....}"; String key = ""; // Your api key. String sig = sStringToHMACMD5(payload, key); URL url = new URL("http://api.grooveshark.com/ws3.php?sig=" + sig); URLConnection connection = url.openConnection(); connection.setDoInput(true); connection.setDoOutput(true); connection.connect(); OutputStream os = connection.getOutputStream(); PrintWriter pw = new PrintWriter(new OutputStreamWriter(os)); pw.write(payload); pw.close(); InputStream is = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line = null; StringBuffer sb = new StringBuffer(); while ((line = reader.readLine()) != null) { sb.append(line); } is.close(); String response = sb.toString(); 

你可以查看Commons HttpClient包。

创建POST是相当直接的,特别是你可以复制这里找到的代码: http : //hc.apache.org/httpclient-3.x/methods/post.html :

 PostMethod post = new PostMethod( "http://api.grooveshark.com/ws3.php?sig=f699614eba23b4b528cb830305a9fc77" ); NameValuePair[] data = { new NameValuePair( "method", "addUserFavoriteSong..." ), ... }; post.setRequestBody(data); InputStream in = post.getResponseBodyAsStream(); ... 

干杯,

Interesting Posts