Submit form with POST data in Android app

前端 未结 2 543
孤街浪徒
孤街浪徒 2021-02-03 15:54

I\'ve been searching the web for a way to do this for about a week now, and I just can\'t seem to figure it out.

I\'m trying to implement an app that my college can use

相关标签:
2条回答
  • 2021-02-03 16:29

    Based on @RobbyPonds answer, for the benefit of people wandering past here, below is a generic implementation to post and receive a response from a URI (NOTE Also contains waiting implementation to return a response, probably not every day implementation of network call):

    private static String responseValue;
    
    @SuppressWarnings({ "unchecked", "rawtypes" })  
    public static String sendPostToTargetAndWaitForResponse() throws ClientProtocolException, IOException {     
        final Thread currentThread = Thread.currentThread();
        synchronized (currentThread) {      
    
            HttpParams params = new BasicHttpParams();
            HttpClient client = new DefaultHttpClient(params);
            HttpPost post = new HttpPost(HTTP_POST_URI);
    
            // List Creation with post data for UrlEncodedFormEntity
            ArrayList<NameValuePair> mList = new ArrayList<NameValuePair>();
            mList.add(new NameValuePair() {
    
                @Override
                public String getValue() {
                    return getSampleJSON();
                }
    
                @Override
                public String getName() {
                    return "json";
                }
            });
            post.setEntity(new UrlEncodedFormEntity(mList)); // with list of key-value pairs
            client.execute(post, new ResponseHandler(){
    
                @Override
                public Object handleResponse(HttpResponse response) throws ClientProtocolException, IOException {
                    responseValue = EntityUtils.toString(response.getEntity(), "UTF-8");
                    synchronized (currentThread) {                          
                        currentThread.notify();
                    }
                    return null;
                }
            }); 
            try {
                currentThread.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return responseValue;
        } 
    }
    
    0 讨论(0)
  • 2021-02-03 16:35

    What's wrong with them just using the built in browser? You can also submit a form using UrlEncodedFormEntity and HttpClient.

    HttpParams params = new DefaultHttpParams(); // setup whatever params you what
    HttpClient client = new DefaultHttpClient(params);
    HttpPost post = new HttpPost("someurl");
    post.setEntity(new UrlEncodedFormEntity()); // with list of key-value pairs
    client.execute(post, new ResponseHandler(){}); // implement ResponseHandler to handle response correctly.
    

    Okay and after you have the response in a string. The response since its a page is going to be in html. You need to use a WebView to show the html. WebView has a method loadData() that takes a string of html and displays it.

    0 讨论(0)
提交回复
热议问题