Подражая браузеру HTTP пост-запрос, странный формат - PullRequest
0 голосов
/ 07 марта 2011

Эй, Я работаю над приложением для моего последнего учебного года в колледже и пытаюсь использовать http-клиент по умолчанию для имитации нижеприведенного поста, поскольку по формату он отличается от других, которые я видел. Код, который я использую, похож на этот, и он успешно зашел на сайт:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.myurl.com/app/page.php"); 
// Add your data   
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);   
nameValuePairs.add(new BasicNameValuePair("type", "20"));
nameValuePairs.add(new BasicNameValuePair("mob", "919895865899"));
nameValuePairs.add(new BasicNameValuePair("pack", "0"));
nameValuePairs.add(new BasicNameValuePair("exchk", "1"));

try {
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        Log.d("myapp", "works till here. 2");
        try {
            HttpResponse response = httpclient.execute(httppost);
            Log.d("myapp", "response " + response.getEntity());
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

Однако я изо всех сил пытаюсь отличить параметры и их значения от приведенного ниже поста и не уверен в назначении числа 8743499427392. Любая помощь будет высоко ценится:

(часть поста из Http Live Headers)

http://messaging.o2online.ie/con_save.osp

POST /con_save.osp -----------------------------8743499427392
Content-Disposition: form-data; name="EContactID"

 -1^
 -----------------------------8743499427392
 Content-Disposition: form-data; name="EContactIDList"


 -----------------------------8743499427392
 Content-Disposition: form-data; name="Categories"

 Synch;
 -----------------------------8743499427392
 Content-Disposition: form-data; name="ENickName"

 Test Colm Test Shannon
 -----------------------------8743499427392
 Content-Disposition: form-data; name="EAtt1"; filename=""
 Content-Type: application/octet-stream


 -----------------------------8743499427392
 Content-Disposition: form-data; name="EPMobile"

 0868617541
 -----------------------------8743499427392
 Content-Disposition: form-data; name="EMobile"


 -----------------------------8743499427392--

1 Ответ

2 голосов
/ 07 марта 2011

Это называется многокомпонентным форматом, что означает, что каждое поле формы получает свой собственный блок многоэлементного запроса. Этот формат обычно используется для загрузки файлов.

Строка ----- ###### - это просто разделитель, который разбивает каждое поле формы на отдельный раздел. Точные символы перечислены в заголовке HTTP, который позволяет получателю анализировать тело.

Вы можете использовать такой инструмент, как Fiddler (www.fiddler2.com), чтобы увидеть этот тип формата на реальных сайтах.

Смотрите также: Составные формы из клиента C # а также Загрузка файлов с помощью HTTPWebrequest (multipart / form-data)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...