-2
我正在從Java調用Gumroad API來驗證許可證密鑰。 Gumroad幫忙告訴我必須這樣做呼叫:來自Java的多個對象的JSON POST請求
curl https://api.gumroad.com/v2/licenses/verify
\ -d "product_permalink=QMGY"
\ -d "license_key=YOUR_CUSTOMERS_LICENSE_KEY"
\ -X POST
爲了做到這一點從Java,Y寫了這個代碼:
URL url = new URL("https://api.gumroad.com/v2/licenses/verify");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
String input = "\"product_permalink=QMGY\"&\"license_key=ABCDEF12-34567890-ABCDEF12-34567890\"";
OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();
if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
但我收到這取決於我如何寫400錯誤或404錯誤輸入字符串。我不確定是什麼問題,但我認爲我可能沒有正確編碼輸入字符串中的兩個-d對象。
它沒有工作:錯誤404。 – Larry
也許是因爲許可證不存在提供的產品,如響應體中所述??? – JEY
最後我明白了! (請幫助,謝謝)。您告訴我必須使用application/x-www-form-urlencoded,但字符串輸入必須爲:\t \t String input =「product_permalink =」+ URLEncoder.encode(「QMGy」)+「&license_key =」+ URLEncoder.encode( 「ABCDEF12-34567890-ABCDEF12-34567890」); – Larry