Android的中http协议HttpURLConnection中post请求

xiaoxiao2021-02-28  118

public class MainActivity extends AppCompatActivity {     private TextView textView;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         textView=(TextView)findViewById(R.id.mytext);         //异步任务;         MyTask task=new MyTask();         task.execute("");     }     class MyTask extends AsyncTask<String,Integer,String>{         @Override         protected String doInBackground(String... params) {             //网络请求             return getPostData();         }         @Override         protected void onPostExecute(String s) {             super.onPostExecute(s);             //json解析             Gson gson=new Gson();             DataBean bean=gson.fromJson(s,DataBean.class);             String text=bean.result.data.get(0).imtro;             //更新UI操作             textView.setText(text);         }     }     //通过post请求来从网络读取数据;     private String getPostData(){         String path="http://apis.juhe.cn/cook/query.php";         try {             String value="menu="+ URLEncoder.encode("白菜","utf-8")+"&key=13af589c334ec80c037688e927407966&rn=1";             //post的URL不要加参数值;             URL url=new URL(path);             HttpURLConnection connection=(HttpURLConnection)url.openConnection();             //设置请求方式为post;默认是get;             connection.setRequestMethod("POST");             //设置输出数据             connection.setDoOutput(true);             //获取一个输出流,用来设置参数             OutputStream outputStream=connection.getOutputStream();             //将参数放入输出流中;             outputStream.write(value.getBytes());             //获取连接状态码             int code=connection.getResponseCode();             if(code==200){                 //获取请求返回的数据                 InputStream inputStream=connection.getInputStream();                 //将输入流转换为string                 BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));                 String result="";                 String str=null;                 while((str=reader.readLine())!=null){                     result+=str;                 }                 return  result;             }         } catch (Exception e) {             e.printStackTrace();         }         return  null;     }

}

不要忘了加权限

转载请注明原文地址: https://www.6miu.com/read-65131.html

最新回复(0)