Android HTTPS POST Params - PullRequest
       7

Android HTTPS POST Params

0 голосов
/ 27 мая 2011

В настоящее время у меня следующий поток

i)
    |-----------------
    |( context app)  |
    | purchase coins |
    | select how much|---->ii
    |                |
    |                |
    |                |
    |________________|

 ii) 

|-----------------
|(cotext website)| 
|copmany website |
|                |
|again give all  |
|prev params     |--->iii
|sends these     |
|params as POST  |
|req             |
|________________|     

iii)
|-----------------
| ctx website    |
| secure https   | 
| purchase coins |
| done           |
|                |
|                |
|                |
|________________|

На первом этапе пользователь выбирает сумму, которую он хочет приобрести.Затем пользователь попадает на веб-сайт компании, где он снова выбирает эти параметры , а затем эти параметры публикуются как POST-запрос для защиты веб-сайта , а затем пользователь должен заполнить информацию о карте и т. Д.

Что яхочу перейти на безопасный веб-сайт, пропустив веб-сайт компании, но как опубликовать эти значения на безопасном веб-сайте и затем показать ответ в браузере ???

ОБНОВЛЕНИЕ до сих пор у меня есть следующий код, этодает HTTP 200 OK , но длина содержимого -1

public static void postData(String url, String coinsValue) throws ClientProtocolException, IOException {
        byte[] result = null;

        SchemeRegistry registry = new SchemeRegistry();




        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(URLUtil.guessUrl(url));

        httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109);     

        httppost.setHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux " + "i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)");
        httppost.setHeader("Accept", "text/html,application/xml," + "application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
        httppost.setHeader("Content-Type", "application/x-www-form-urlencoded");

        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
        nameValuePairs.add(new BasicNameValuePair("gae", CoreConstants.USERINFO.getName()));
        nameValuePairs.add(new BasicNameValuePair("param1", "1"));
        nameValuePairs.add(new BasicNameValuePair("quantity", "1"));
        nameValuePairs.add(new BasicNameValuePair("g_noteParam", coinsValue));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

        int StatusCode= response.getStatusLine().getStatusCode();
        String stautsLine = response.getStatusLine().toString();

        HttpEntity r_entity = response.getEntity();

        if (r_entity != null) {
            int contentLength = (int)r_entity.getContentLength();
            result = new byte[(int) 10];
            if (r_entity.isStreaming()) {
                DataInputStream is = new DataInputStream(r_entity.getContent());
                is.readFully(result);
                // no load this result to webview
            }
            XMLResponseParser.writeXMLtoSDCard(result, "https_response.html");
        }
    }
}

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Почему вы даже просите пользователя выбрать параметры дважды?Пропустить шаг 1 в целом

0 голосов
/ 22 октября 2012
private final String URL_STRING = "https://www.paypal.com/checkout/";

    public void postData() {
        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("param1", "value1"));
            nameValuePairs.add(new BasicNameValuePair("param2", "value2"));

            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(URL_STRING);
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));

            HttpResponse response = httpclient.execute(httppost);
            String data = new BasicResponseHandler().handleResponse(response);            

            mWebView.loadDataWithBaseURL(httppost.getURI().toString(), data, "text/html", HTTP.UTF_8, null);

        } catch (Exception ex) {
            ex.printStackTrace();
        }

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