2012-04-12 2 views
0

Мне нужно уметь размещать форму на http:///Default.aspx. Я пробовал, я думаю, все различные возможные комбинации параметров, которые, как я думал, мне нужно пройти, но я не имел никакого успеха.http пост не проходит, я не думаю, что мне не хватает параметра

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

private void Post() { 
    // TODO Auto-generated method stub 
    // Create a new HttpClient and Post Header 

    HttpParams params = new BasicHttpParams(); 
    params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); 

    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://customer.chuckwilson.com/Default.aspx"); 
    httppost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0"); 
    httppost.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
    httppost.setHeader("Accept-Charset", "utf-8"); 
    try { 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 

     nameValuePairs.add(new BasicNameValuePair("__VIEWSTATE", "<state value>")); 
     nameValuePairs.add(new BasicNameValuePair("__EVENTVALIDATION", "<Event validation value>")); 

     nameValuePairs.add(new BasicNameValuePair("txtEmailAddress", "[email protected]")); 

     nameValuePairs.add(new BasicNameValuePair("txtStreetAddress", "streetandroid")); 
     nameValuePairs.add(new BasicNameValuePair("txtZipCode", "5454")); 
     nameValuePairs.add(new BasicNameValuePair("txtCity", "cityandroid")); 
     nameValuePairs.add(new BasicNameValuePair("CallBack", "rdCallBackYes")); 
     nameValuePairs.add(new BasicNameValuePair("txtLastName", "lastandroid")); 
     nameValuePairs.add(new BasicNameValuePair("phone", "(111) 111-1111")); 

     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 
     Log.d(getPackageName(), "executed http post req"); 
     HttpEntity resEntity = response.getEntity(); 
     if (resEntity != null) {  
      Log.i("RESPONSE",EntityUtils.toString(resEntity)); 
     } 
    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     Log.e(getPackageName(), "error1 in req"); 
     e.printStackTrace(); 
    } catch (IOException e) { 
       // TODO Auto-generated catch block 
     Log.e(getPackageName(), "error2 in req"); 
     e.printStackTrace(); 
    } 
} 

Everytime я бегу код, ответ я получаю это HTML для этой формы. Это указывает на то, что мои параметры ошибочны, но я действительно не вижу в этом ничего плохого. Надеюсь, кто-то может указать на ошибку. Буду признателен за любую оказанную помощь.

ответ

0

формы на странице связывания определяются с этим HTML тегом:

<form name="form1" method="post" action="Default.aspx" id="form1" enctype="multipart/form-data"> 

«ENCTYPE» означает, что он не использует URL-закодированные формы представления, что вы производите, но MIME многочастного протокол, который обычно используется для загрузки файлов.

См. Статью в этом блоге, в которой показано, как использовать этот тип формы: http://blog.tacticalnuclearstrike.com/2010/01/using-multipartentity-in-android-applications/