簡體   English   中英

將表單數據發布到服務器Api(Android)

[英]Post form data to server Api (Android)

我需要將我的注冊表格詳細信息提交給服務器api。 我通過單擊按鈕上的函數來嘗試一種方法。但是服務器上什么都沒有發布,我也沒有任何異常。請幫助我。 提前致謝。 下面是代碼。

我已經這樣調用了函數

 button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            try{

                // CALL GetText method to make post method call
                GetText();
            }
            catch(Exception ex)
            {
                ex.printStackTrace();;
                Toast.makeText(getActivity(),"URL Exception", Toast.LENGTH_LONG).show();
            }

而下面給出的功能

  public String GetText()  throws UnsupportedEncodingException
{
    HttpURLConnection connection = null;
    // Get user defined values
    Name = full_name.getText().toString();
    Phonenumber = phone.getText().toString();
    Email=email.getText().toString();
    Password=password.getText().toString();
    House = house.getText().toString();
    Street = street.getText().toString();
    Landmark = landmark.getText().toString();
    // Create data variable for sent values to server
    String data = URLEncoder.encode("name", "UTF-8")
            + "=" + URLEncoder.encode(Name, "UTF-8");
    data += "&" + URLEncoder.encode("email", "UTF-8") + "="
            + URLEncoder.encode(Email, "UTF-8");
    data += "&" + URLEncoder.encode("password", "UTF-8") + "="
            + URLEncoder.encode(Password, "UTF-8");
    data += "&" + URLEncoder.encode("phone", "UTF-8")
            + "=" + URLEncoder.encode(Phonenumber, "UTF-8");
    data += "&" + URLEncoder.encode("house", "UTF-8")
        + "=" + URLEncoder.encode(House, "UTF-8");
    data += "&" + URLEncoder.encode("street", "UTF-8")
            + "=" + URLEncoder.encode(Street, "UTF-8");
    data += "&" + URLEncoder.encode("areaname", "UTF-8")
            + "=" + URLEncoder.encode(Area, "UTF-8");
    data += "&" + URLEncoder.encode("landmark", "UTF-8")
            + "=" + URLEncoder.encode(Landmark, "UTF-8");

    // Send data
    try
    {

        // Defined URL  where to send data
        URL url = new URL("http://application.easypani.com/app/customer/register");
        // Send POST data request
        connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type",
                "application/x-www-form-urlencoded");
        connection.setRequestProperty("Content-Length", "" +
                Integer.toString(data.getBytes().length));
        connection.setRequestProperty("Content-Language", "en-US");
        connection.setUseCaches(false);
        connection.setDoInput(true);
        connection.setDoOutput(true);
        //send request
        DataOutputStream wr = new DataOutputStream (
                connection.getOutputStream ());
        wr.writeBytes(data);
        wr.flush();
        wr.close();

        // Get the server response
        InputStream is = connection.getInputStream();
        BufferedReader rd = new BufferedReader(new InputStreamReader(is));
        String line;
        StringBuffer response = new StringBuffer();
        while((line = rd.readLine()) != null) {
            response.append(line);
            response.append('\r');
        }
        rd.close();
        return response.toString();

    } catch (Exception e) {

        e.printStackTrace();
        return null;

    } finally {

        if(connection != null) {
            connection.disconnect();
        }
    }
}

改用這個

private class PostData extends AsyncTask < String, Void, Void > {
    protected Void doInBackground(String...params) {
        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://application.easypani.com/app/customer/register");

        try {
            // Add your data
            String Name = params[0];
            String Phonenumber = params[1];
            String Email = params[2];
            String Password = params[3];
            String House = params[4];
            String Street = params[5];
            String Landmark = params[6];

            List < NameValuePair > nameValuePairs = new ArrayList < NameValuePair > ();
            nameValuePairs.add(new BasicNameValuePair("name", Name));
            nameValuePairs.add(new BasicNameValuePair("email", Email));............................................................
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

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

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
        return null;
    }
}

你這樣使用它

new PostData().execute(Name, PhoneNumber..and so on);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM