grooveshark로 간단한 세션을 시작하려고하는데 sendPostReq 함수를 사용하여 startSession API를 호출합니다. 나는 grooveshark에서 다음과 같은 응답을 계속합니다.Grooveshark api는 항상 "Method not found"메시지를 반환합니다.
{"errors":[{"code":2,"message":"Method not found."}]}
우리가 Grooveshark에 API를 작동 방법은 우리가 페이로드 (내 경우에는 grooveSharkjson)를 가지고, 우리는 비밀 키를 사용하여 해당의 MD5 해시를 생산하고 URL을 https://api.grooveshark.com/ws3.php?sig= {MD5 해시 해당 JSON을 게시 페이로드}. 이것이 올바른 절차입니까? 나는 그들이 우리를 제공 한 샘플 키와 비밀 그것을 확인한로
sendPostReq 기능과 MD5 해시를 생성하는 코드는 내가 생산하고 해시가 정확한지 생각
public static void sendPostReq() throws Exception{
String grooveSharkjson = "{'method':'startSession','header':{'wsKey':'wskey'}}";
String key = "secret"; // Your api key.
String sig = SecurityHelper.getHmacMD5(grooveSharkjson, key);
URL url = new URL("https://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(grooveSharkjson);
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();
System.out.println(response);
}
public static String getHmacMD5(String payload, String secret) {
String sEncodedString = null;
try {
SecretKeySpec key = new SecretKeySpec((secret).getBytes("UTF-8"), "HmacMD5");
Mac mac = Mac.getInstance("HmacMD5");
mac.init(key);
byte[] bytes = mac.doFinal(payload.getBytes("UTF-8"));
StringBuffer hash = new StringBuffer();
for (int i=0; i<bytes.length; i++) {
String hex = Integer.toHexString(0xFF & bytes[i]);
if (hex.length() == 1) {
hash.append('0');
}
hash.append(hex);
}
sEncodedString = hash.toString();
}
catch (UnsupportedEncodingException e) {}
catch(InvalidKeyException e){}
catch (NoSuchAlgorithmException e) {}
return sEncodedString ;
}
아래에 존재 with with their website http://developers.grooveshark.com/tuts/public_api
제대로 작동하도록 관리 했습니까? 귀하의 코드를 사용하려고하면 "귀하의 웹 서비스 키에 호출 된 메소드에 대한 액세스 권한이 없습니다"오류가 발생합니다. :/ –
오우는 알아 냈어. 신경 쓰지 마라. 당신의 grooveSharkjson에서 두 번째 \ "wsKey \"가 내 키가되어야하고 String 키가 내 비밀을 써야한다. 신기한 실수. 어쨌든 고마워! –
jar 파일을 포함 시켰습니까? 나를 위해 그것은 SecurityHelper에 오류를주고 있습니다. 나는 자바를 처음 사용합니다. 당신이 나를 도울 수 있습니까 @ user1386101 –