Отправка пакета
Здравствуйте.
Нужно отправить один единственный пакет, без никаких кук и замысловатых параметров, но в Charles я получаю одно, а с помощью нижеизложенного кода - другое. Помогите разобраться в причинах.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;
public class ODbrute {
static String user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.45 Safari/537.36";
public static void main(String[] args) {
String response = sendRequest("http://ok.ru/dk?cmd=AnonymLogin&st.cmd=anonymLogin&tkn=2309&st.posted=set&st.email=почта&st.password=пароль&button_go=%D0%92%D0%BE%D0%B9%D1%82%D0%B8");
System.out.println(response);
}
public static String sendRequest(String url) {
String inputLine = "";
String resp = "";
String buf = "";
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", user_agent);
con.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
con.setRequestProperty("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
System.out.println(con.getResponseCode());
BufferedReader in = new BufferedReader(new InputStreamReader(
con.getInputStream()));
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine+"\n");
}
in.close();
resp = response.toString();
Map<String, List<String>> map = con.getHeaderFields();
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
buf += entry.getKey() + entry.getValue() + "\n";
}
buf += "\n";
} catch (Exception ex) {
System.out.println("Request error.");
}
return buf + resp;
}
}
Запрос через Charles:
Ответ:
Помогите, пожалуйста.
Источник: Stack Overflow на русском