我正在嘗試執行 curl 命令并將回應的一部分作為字串獲取。我試圖執行的命令如下
curl -X POST "https://kakaoapi.aligo.in/akv10/token/create/30/s/" \
--data-urlencode "apikey=xxxxx" \
--data-urlencode "userid=xxxxx"
我在終端中執行此操作時得到的回應如下
{"code":0,"message":"\uc815\uc0c1\uc801\uc73c\ub85c \uc0dd\uc131\ud558\uc600\uc2b5\ub2c8\ub2e4.","token":"tokenvalue","urlencode":"urlencoded"}%
我試圖執行以獲得這個結果的java代碼是這樣的
String command =
"curl -X POST \"https://kakaoapi.aligo.in/akv10/token/create/30/s/\" \\\n"
"\t--data-urlencode \"apikey=xxxxx\" \\\n"
"\t--data-urlencode \"userid=xxxxx\"";
Process pr = Runtime.getRuntime().exec(command);
String result = new BufferedReader(
new InputStreamReader(pr.getInputStream()))
.lines()
.collect(Collectors.joining("\n"));
log.info(result);
我目前在日志中得到一個空值。
如果有人能告訴我我做錯了什么,或者提出更好的方法,將不勝感激。
我已經嘗試通過創建一個 httpclient 并發送一個 post 請求來做到這一點,我確實得到了回應,但由于某種原因身份驗證失敗。
先感謝您!
uj5u.com熱心網友回復:
更好的方法是使用 Unirest 庫 ( http://kong.github.io/unirest-java ):
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://kakaoapi.aligo.in/akv10/token/create/30/s/?apikey=xxxxx&userid=xxxxx")
.asString();
第一步是安裝它的 maven / gradle 依賴,然后嘗試上面的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/489574.html
