嘿 我想建立一个简单的Android应用程序,以喜欢最近的轨道。我收到了user.getRecentTrack的歌曲,并将数据和会话密钥发送到我的方法,但是有一个错误: “目标服务器无法响应。”有时,lastfm方法也有错误3:track.love:“无效方法 - 此包中没有使用该名称的方法”。 这是我的track.love
的Http Post请求HttpClient client = new DefaultHttpClient();
String postURL = "http://ws.audioscrobbler.com/2.0/";;
HttpPost post = new HttpPost(postURL);
List<NameValuePair> params = new ArrayList<NameValuePair>(2);
String signatur = makeTrackLoveSignatur(artist, title, key);
params.add(new BasicNameValuePair("method", "track.love"));
params.add(new BasicNameValuePair("track", title));
params.add(new BasicNameValuePair("artist", artist));
params.add(new BasicNameValuePair("api_key", api_key));
params.add(new BasicNameValuePair("api_sig", signatur));
params.add(new BasicNameValuePair("sk", key));
params.add(new BasicNameValuePair("format", "json"));
UrlEncodedFormEntity ent =
new UrlEncodedFormEntity(params,HTTP.UTF_8);
post.setEntity(ent);
HttpResponse responsePOST = client.execute(post);
InputStream data = responsePOST.getEntity().getContent();
我还实现了将InputStream转换为String方法:
BufferedReader reader = new BufferedReader(
new InputStreamReader(stream));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Output"+sb.toString());
return sb.toString();
有什么问题? 感谢...
答案 0 :(得分:1)
尝试添加内容类型标题:
post.addHeader("Content-type", "application/x-www-form-urlencoded");
答案 1 :(得分:0)
您是否尝试过使用XML而不是JSON?它可能是down or something。