У меня есть этот cURL
запрос:новообращенный локон запрос в URLConnection
curl -H 'Accept: application/vnd.twitchtv.v3+json' -H 'Authorization: OAuth <access_token>' \
-X PUT https://api.twitch.tv/kraken/users/<bot_name>/follows/channels/<channel_name>
Мне нужно, чтобы превратить его в URLConnection
запроса Java. Это то, что у меня есть до сих пор:
String url = "https://api.twitch.tv/kraken/?oauth_token=" + bot.botOAuth.substring("oauth:".length());
URL obj = new URL(url);
HttpURLConnection conn = (HttpURLConnection) obj.openConnection();
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
conn.setRequestMethod("PUT");
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
out.write("https://api.twitch.tv/kraken/users/" + bot.botName + "/follows/channels/" + gamrCorpsTextField.getText());
out.close();
new InputStreamReader(conn.getInputStream());
Любая помощь будет оценена!
Спасибо! Я добавил 'connection.setRequestProperty (" Content-Length ", connection.getContentLength() +" ");' также, но теперь он бросает ошибку 'java.lang.IllegalStateException: Already connected'. Любая идея почему? –
Вы не можете больше устанавливать свойства запроса после выполнения любой операции, требующей отправки HTTP-запроса. Одной из таких операций является 'getContentLength()', поскольку она возвращает длину содержимого * response *. В любом случае вам не нужно напрямую устанавливать длину содержимого запроса *. Просто используйте 'doOutput (true)' и напишите тело запроса через 'OutputStream' соединения. –