如何在Android中编写POST方法

时间:2017-10-06 06:33:27

标签: android post

这是我的代码到目前为止,请帮助我,我需要使用post方法用户名和密码登录网站。我在网上搜索了一些例子并使用了wiki如何做到这一点。如下所示,我将所有内容都设置在按钮内:

package com.example.work.try1;

import android.widget.Button;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.net.Uri;
import android.content.Intent;
import android.view.View;
import java.io.OutputStream; 
import java.net.HttpURLConnection;
import java.net.URL;

public class Launch extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_launch);

    final View buttonS = findViewById(R.id.button);
    buttonS.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Uri uri = Uri.parse("https://www.navanithiastrolife.com");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
        }
    });

    Button b = (Button) findViewById(R.id.button2);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            EditText e1 = (EditText) findViewById(R.id.editText);
            String username = e1.getText().toString();
            EditText e2 = (EditText) findViewById(R.id.editText3);
            String password = e2.getText().toString();

            OutputStream out = null;
            try {

                URL url = new URL("http://iconinfo.tech/mob_app/");

                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

                urlConnection.connect();

                urlConnection.setRequestMethod("POST");
                urlConnection.setRequestProperty("username",username);
                urlConnection.setRequestProperty("password",password);
                urlConnection.setDoOutput(true);

                urlConnection.disconnect();

            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    });
}
}

请帮忙,好吧。

2 个答案:

答案 0 :(得分:0)

您还可以使用volley library来调用API

我希望它对你有所帮助..!

答案 1 :(得分:0)

您的请求是在主线程中完成的,这是不对的,因为它可以阻止主线程。对于此后台操作,您必须使用后台线程,例如Volley库,Retrofit或RoboSpice。要构建POST方法,您必须构造帖子将包含的数据。例如,在Volley中,您使用键值对方法。