HttpUrlConnection

    xiaoxiao2021-04-13  38

    HttpUrlConnection通过Post请求 注意: 需要在清单文件中配置文件 uses-permission android:name=”android.permission.INTERNET”

    public class MainActivity extends AppCompatActivity { private TextView ontv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ontv = (TextView) findViewById(R.id.onTv); } //Button监听 public void onPlay(View v) { new Thread() { @Override public void run() { super.run(); try { //调用的主方法 final String s = onConnection(); runOnUiThread(new Runnable() { @Override public void run() {//更新操作 ontv.setText("post请求结果:" +s); } }); } catch (Exception e) { e.printStackTrace(); } } }.start(); } //具体实现方法 public String onConnection() throws Exception { //接口地址 //菜谱大全的网址:https://www.juhe.cn/docs/api/id/46 URL url = new URL("http://apis.juhe.cn/cook/query.php"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置与服务建立的连接时间 connection.setConnectTimeout(5000); //设置读取网络数据的时间 connection.setReadTimeout(5000); //设置请求方式 POST connection.setRequestMethod("POST"); //写入流 键值对 key = value OutputStream out = connection.getOutputStream(); out.write(("menu=" + "秘制红烧肉&" + "key=a7a42220c5c1c5268be7ba25af764f6c").getBytes()); PrintWriter printWriter = new PrintWriter(out); printWriter.flush(); //服务器响应 int code = connection.getResponseCode(); if (code == 200) {//如果是200 就代表响应了 InputStream input = connection.getInputStream(); //引用写入流的方法 String in = MyEat.onFood(input); System.out.println("post请求结果:" + in); return in; } return ""; } } > 需要写一个Utils包,用来实现流转化工具类 public class MyEat { public static String onFood(InputStream input){ //流转化成字符串 try { ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] by = new byte[1024]; int len = 0; while ((len =input.read(by)) != -1) { out.write(by,0,len); } return out.toString(); } catch (IOException e) { e.printStackTrace(); } return null; } }
    转载请注明原文地址: https://ju.6miu.com/read-669122.html

    最新回复(0)