Android Studio中的POST请求示例 [英] Example of POST request in Android studio

查看:1365
本文介绍了Android Studio中的POST请求示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚开始学习android几天前,我有一个上传我的JSON数据到服务器的问题。我设法通过以下代码来检索它:编辑:我设法使用外部OKHTTP库来检索文件,但是我希望在不使用外部库的情况下执行此操作。

p>

  package cc.demorest; 

导入android.os.AsyncTask;
导入android.renderscript.ScriptGroup;
导入android.support.v7.app.AppCompatActivity;
导入android.os.Bundle;
导入android.util.Log;
导入android.widget.EditText;
导入android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
import java.net.URL;

公共类MainActivity延伸AppCompatActivity {
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
的setContentView(R.layout.activity_main);

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

DownloadTask task = new DownloadTask();
task.execute(myserver.com);
}
//下载任务
public class DownloadTask extends AsyncTask< String,Void,String> {


@Override
保护字符串doInBackground(字符串...网址){

字符串结果=;
网址;
HttpURLConnection urlConnection = null;


尝试{
url =新网址(网址[0]);

urlConnection =(HttpURLConnection)url.openConnection();
InputStream in = urlConnection.getInputStream();

InputStreamReader reader = new InputStreamReader(in);

int data = reader.read();

while(data!= - 1){

char current =(char)data;

result + = current;
data = reader.read();
}

返回结果;

catch(MalformedURLException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}

返回null;
}
//下载任务
@Override
后保护无效onPostExecute(字符串结果){
super.onPostExecute(result);
尝试{

JSONArray jArray = new JSONArray(result);
JSONObject json_data = jArray.getJSONObject(1);
//记录数据
Log.i( Podatci:, ID: + json_data.getInt( ID)+
,名称: + json_data.getString(名称 )+
,岁月: + json_data.getString( 时代 )+
,邮箱地址: + json_data.getString( 电子邮件)
);
TextView textView =(TextView)findViewById(R.id.textViewName);
textView.setText( ID: +,名称: + json_data.getInt( ID)+ json_data.getString( 名称)+ json_data.getString( 时代)+ json_data.getString( 电子邮件));




/ *
String data = jsonObject.getString(Name);
Log.i(网站内容,数据);
* /
} catch(JSONException e){
e.printStackTrace();
}

}
}



}

我现在试图将数据发送到具有相同字段的相同服务器。我搜索了互联网,但我发现的大多数东西都过时了。我会真正appriciate一些帮助或例子。
最好的问候

解决方案

使用Volley定义这里。这更容易。


I just started learning android few days ago and I have a problem with uploading my JSON data to server. I manage to retrieve it via following code:

Edit: I did manage to retrieve files using external OKHTTP library but I would like to do this without using external libraries.

package cc.demorest;

import android.os.AsyncTask;
import android.renderscript.ScriptGroup;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_main);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        DownloadTask task = new DownloadTask();
        task.execute("myserver.com");
    }
//Downloadtask
    public class DownloadTask extends AsyncTask<String,Void,String> {


        @Override
        protected String doInBackground(String... urls) {

            String result = "";
                URL url;
            HttpURLConnection urlConnection=null;


            try {
                url = new URL(urls[0]);

                urlConnection=(HttpURLConnection)url.openConnection();
                InputStream in = urlConnection.getInputStream();

                InputStreamReader reader = new InputStreamReader(in);

                int data=reader.read();

                while (data !=-1){

                    char current=(char) data;

                    result += current;
                    data = reader.read();
                }

                return result;

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            return null;
        }
//After download task
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
        try {

            JSONArray jArray=new JSONArray(result);
                JSONObject json_data = jArray.getJSONObject(1);
//Logging data
               Log.i("Podatci: ", "Id: " + json_data.getInt("Id") +
                                ", Name: " + json_data.getString("Name") +
                                ", Years: " + json_data.getString("Age") +
                                ", Email address: " + json_data.getString("Email")
                );
                TextView textView = (TextView) findViewById(R.id.textViewName);
                textView.setText("ID: "+", Name: "+  json_data.getInt("Id")+json_data.getString("Name")+json_data.getString("Age")+json_data.getString("Email"));




/*
        String data = jsonObject.getString("Name");
            Log.i("Website content", data);
*/
        } catch (JSONException e) {
            e.printStackTrace();
        }

        }
    }



}

I am now trying to send my data to same server with same fields. I searched internet but most things that I found are outdated.. I would really appriciate some help or example. Best Regards

解决方案

Use Volley as defined here. It's far more easier.

这篇关于Android Studio中的POST请求示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆