无法在中的android中执行POST方法 公共类MainActivity扩展了ActionBarActivity实现了View.OnClickListener{ 公共静态int标志; 公共布尔t; 文本视图; 按钮; 私有静态最终字符串DEBUG_TAG=“HttpExample”; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.layout); 视图=(TextView)findViewById(R.id.textvi); 按钮=(按钮)findViewById(R.id.button); setOnClickListener(此); } @凌驾 公共void onClick(视图v){ if(v.getId()==R.id.button){ 字符串stringUrl=”http://mohdgadi.netai.net/Register.php"; 新建下载WebPagetAsk().execute(stringUrl); } } 私有类下载WebPagetTask扩展异步任务{ @凌驾 受保护的字符串doInBackground(字符串…URL){ //params来自execute()调用:params[0]是url。 试一试{ 返回下载URL(URL[0]); }捕获(IOE异常){ return“无法检索网页。URL可能无效。”; } } //onPostExecute显示异步任务的结果。 @凌驾 受保护的void onPostExecute(字符串结果){ view.setText(结果); } } 私有字符串下载URL(字符串myurl)引发IOException{ InputStream=null; 字符串username=“mohammed”; 字符串password=“pass”; 智力年龄=3; //仅显示检索到的文件的前500个字符 //网页内容。 int len=500; 试一试{ URL=新URL(myurl); HttpURLConnection conn=(HttpURLConnection)url.openConnection(); conn.setReadTimeout(10000/*毫秒*/); conn.setConnectTimeout(15000/*毫秒*/); conn.setRequestMethod(“POST”); conn.setDoInput(真); 连接设置输出(真); //启动查询 int response=conn.getResponseCode(); Log.d(DEBUG_标记,“响应为:”+response); ArrayList dataToSend=新的ArrayList(); 添加(新的BasicNameValuePair(“用户名”,username)); 添加(新的BasicNameValuePair(“密码”,password)); 添加(新的BasicNameValuePair(“年龄”,年龄+”); OutputStream os=conn.getOutputStream(); BufferedWriter=新的BufferedWriter( 新的OutputStreamWriter(操作系统,“UTF-8”); write(getQuery(dataToSend)); writer.flush(); writer.close(); os.close(); 连接(); String result=“完成”; //is=conn.getInputStream(); //将InputStream转换为字符串 //字符串contentAsString=readIt(is,len); //返回contentAsString; 返回null; //确保在应用程序启动后关闭InputStream //用完了。 }最后{ 如果(is!=null){ is.close(); } } } 私有字符串getQuery(列表参数)引发UnsupportedEncodingException { StringBuilder结果=新建StringBuilder(); 布尔值优先=真; for(NameValuePair对:params) { 如果(第一) 第一个=假; 其他的 结果。追加(&); append(URLEncoder.encode(pair.getName(),“UTF-8”); 结果。追加(“=”); append(URLEncoder.encode(pair.getValue(),“UTF-8”); } 返回result.toString(); }

无法在中的android中执行POST方法 公共类MainActivity扩展了ActionBarActivity实现了View.OnClickListener{ 公共静态int标志; 公共布尔t; 文本视图; 按钮; 私有静态最终字符串DEBUG_TAG=“HttpExample”; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.layout); 视图=(TextView)findViewById(R.id.textvi); 按钮=(按钮)findViewById(R.id.button); setOnClickListener(此); } @凌驾 公共void onClick(视图v){ if(v.getId()==R.id.button){ 字符串stringUrl=”http://mohdgadi.netai.net/Register.php"; 新建下载WebPagetAsk().execute(stringUrl); } } 私有类下载WebPagetTask扩展异步任务{ @凌驾 受保护的字符串doInBackground(字符串…URL){ //params来自execute()调用:params[0]是url。 试一试{ 返回下载URL(URL[0]); }捕获(IOE异常){ return“无法检索网页。URL可能无效。”; } } //onPostExecute显示异步任务的结果。 @凌驾 受保护的void onPostExecute(字符串结果){ view.setText(结果); } } 私有字符串下载URL(字符串myurl)引发IOException{ InputStream=null; 字符串username=“mohammed”; 字符串password=“pass”; 智力年龄=3; //仅显示检索到的文件的前500个字符 //网页内容。 int len=500; 试一试{ URL=新URL(myurl); HttpURLConnection conn=(HttpURLConnection)url.openConnection(); conn.setReadTimeout(10000/*毫秒*/); conn.setConnectTimeout(15000/*毫秒*/); conn.setRequestMethod(“POST”); conn.setDoInput(真); 连接设置输出(真); //启动查询 int response=conn.getResponseCode(); Log.d(DEBUG_标记,“响应为:”+response); ArrayList dataToSend=新的ArrayList(); 添加(新的BasicNameValuePair(“用户名”,username)); 添加(新的BasicNameValuePair(“密码”,password)); 添加(新的BasicNameValuePair(“年龄”,年龄+”); OutputStream os=conn.getOutputStream(); BufferedWriter=新的BufferedWriter( 新的OutputStreamWriter(操作系统,“UTF-8”); write(getQuery(dataToSend)); writer.flush(); writer.close(); os.close(); 连接(); String result=“完成”; //is=conn.getInputStream(); //将InputStream转换为字符串 //字符串contentAsString=readIt(is,len); //返回contentAsString; 返回null; //确保在应用程序启动后关闭InputStream //用完了。 }最后{ 如果(is!=null){ is.close(); } } } 私有字符串getQuery(列表参数)引发UnsupportedEncodingException { StringBuilder结果=新建StringBuilder(); 布尔值优先=真; for(NameValuePair对:params) { 如果(第一) 第一个=假; 其他的 结果。追加(&); append(URLEncoder.encode(pair.getName(),“UTF-8”); 结果。追加(“=”); append(URLEncoder.encode(pair.getValue(),“UTF-8”); } 返回result.toString(); },android,http-post,Android,Http Post,我试图在我的网站上发布数据,但当我按下按钮时,它似乎不起作用,它不会更新我的网站和数据库。 我注释掉了inputstream代码,它在GET方法中工作得非常好,但是post不工作,甚至我的数据库也没有更新 这是我在名为Register.php的公用文件夹中的php文件 public class MainActivity extends ActionBarActivity implements View.OnClickListener{ public static int flag;

我试图在我的网站上发布数据,但当我按下按钮时,它似乎不起作用,它不会更新我的网站和数据库。 我注释掉了inputstream代码,它在GET方法中工作得非常好,但是post不工作,甚至我的数据库也没有更新

这是我在名为Register.php的公用文件夹中的php文件

public class MainActivity extends ActionBarActivity implements View.OnClickListener{

    public static int flag;
    public boolean t;
    TextView view;
    Button button;
    private static final String DEBUG_TAG = "HttpExample";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        view=(TextView)findViewById(R.id.textvi);
        button=(Button)findViewById(R.id.button);
        button.setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {
        if(v.getId()==R.id.button){
            String stringUrl="http://mohdgadi.netai.net/Register.php";
            new DownloadWebpageTask().execute(stringUrl);
        }

    }
    private class DownloadWebpageTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {

            // params comes from the execute() call: params[0] is the url.
            try {
                return downloadUrl(urls[0]);
            } catch (IOException e) {
                return "Unable to retrieve web page. URL may be invalid.";
            }
        }
        // onPostExecute displays the results of the AsyncTask.
        @Override
        protected void onPostExecute(String result) {
            view.setText(result);
        }
    }

    private String downloadUrl(String myurl) throws IOException {
        InputStream is = null;
        String username="mohammed";
        String password="pass";
        int age=3;
        // Only display the first 500 characters of the retrieved
        // web page content.
        int len = 500;

        try {
            URL url = new URL(myurl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(10000 /* milliseconds */);
            conn.setConnectTimeout(15000 /* milliseconds */);
            conn.setRequestMethod("POST");
            conn.setDoInput(true);
            conn.setDoOutput(true);
            // Starts the query

            int response = conn.getResponseCode();
            Log.d(DEBUG_TAG, "The response is: " + response);
            ArrayList<NameValuePair> dataToSend = new ArrayList<>();
            dataToSend.add(new BasicNameValuePair("username", username));
            dataToSend.add(new BasicNameValuePair("password",password));
            dataToSend.add(new BasicNameValuePair("age", age + ""));
            OutputStream os = conn.getOutputStream();
            BufferedWriter writer = new BufferedWriter(
                    new OutputStreamWriter(os, "UTF-8"));
            writer.write(getQuery(dataToSend));
            writer.flush();
            writer.close();
            os.close();



            conn.connect();
            String result="done";
           // is = conn.getInputStream();

            // Convert the InputStream into a string
           // String contentAsString = readIt(is, len);
            //return contentAsString;
            return null;

            // Makes sure that the InputStream is closed after the app is
            // finished using it.
        } finally {
            if (is != null) {
                is.close();
            }
        }


    }
    private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
    {
        StringBuilder result = new StringBuilder();
        boolean first = true;

        for (NameValuePair pair : params)
        {
            if (first)
                first = false;
            else
                result.append("&");

            result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
            result.append("=");
            result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
        }

        return result.toString();
    }

您正在尝试在写入post数据之前获取响应代码。请在写入后检索响应代码

int response = conn.getResponseCode();
您正在尝试在写入post数据之前获取响应代码。请在写入后检索响应代码

int response = conn.getResponseCode();

要发出Post请求,您可以使用以下代码:

conn.connect();
public void postRequest(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“”);
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“名称”、“堆栈溢出”);
添加(新的BasicNameValuePair(“日期”、“12月4日”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
}

有关完整的教程和解释,请单击发出发帖请求。您可以使用以下代码:

conn.connect();
public void postRequest(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“”);
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“名称”、“堆栈溢出”);
添加(新的BasicNameValuePair(“日期”、“12月4日”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块