Generowanie HttpRequest z określonego IP w Javie
Używam Apache HttpClient do generowania żądania Post i przesyłania danych. Ponieważ zdalna aplikacja przekazuje adres IP użytkownika, który przesyła dane, chcę wysłać zapytanie o adres IP określony przez użytkownika.
Jak to skonfigurować?
public static void loginUser(String username, String password, String ip) throws Exception{
try {
HttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://login.myapp.com/");
// Request parameters and other properties.
List<NameValuePair> params = new ArrayList<NameValuePair>(2);
params.add(new BasicNameValuePair("username",username));
params.add(new BasicNameValuePair("password", password));
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
// Execute and get the response.
HttpResponse response = client.execute(httppost);
HttpEntity entity = response.getEntity();
if (entity != null) {
//etc....
}
} catch (Exception e) {
e.printStackTrace();
}
}
EDYCJA: Aby uniknąć nieporozumień,
Chcę dołączyć niestandardowy adres IP w nagłówkach httprequest, aby aplikacja końcowa wiedziała, że to żądanie [z mojej aplikacji] pochodzi z niestandardowego adresu IP, ale nie z adresu IP, na którym działa moja aplikacja
Powiedzmy, że moja aplikacja działa na serwerze z adresem IP „1.1.1.0”. Teraz mój użytkownik wykonuje metodę loginUser z „test”, „test”, „199.199.199.0”. Teraz żądanie HTTP z aplikacji do docelowego adresu URL powinno zostać przesłane jako „199.199.199.0”