1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android笔记-使用okhttp3库发送http请求

Android笔记-使用okhttp3库发送http请求

时间:2023-02-04 13:18:26

相关推荐

Android笔记-使用okhttp3库发送http请求

build.gradle新加:

implementation 'com.squareup.okhttp3:okhttp:3.8.0'

在AndroidManifest.xml添加权限

<uses-permission android:name="android.permission.INTERNET"/>

源码如下:

HttpRequest.java

package com.example.myclient.http;import okhttp3.Call;import okhttp3.Callback;import okhttp3.OkHttpClient;import okhttp3.Request;public class HttpRequest {private Call mCall;public HttpRequest(String url) {OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().get().url(url).build();mCall = client.newCall(request);}public void request(Callback callback){if(mCall != null){if(mCall.isExecuted()){mCall.clone().enqueue(callback);}else{mCall.enqueue(callback);}}}}

MainActivity.java

package com.example.myclient;import android.os.Bundle;import com.example.myclient.http.HttpRequest;import com.google.android.material.floatingactionbutton.FloatingActionButton;import com.google.android.material.snackbar.Snackbar;import androidx.appcompat.app.AppCompatActivity;import androidx.appcompat.widget.Toolbar;import android.util.Log;import android.view.View;import android.view.Menu;import android.view.MenuItem;import java.io.IOException;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;public class MainActivity extends AppCompatActivity {private static final String URL = "http://192.168.20.59/";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Toolbar toolbar = findViewById(R.id.toolbar);setSupportActionBar(toolbar);FloatingActionButton fab = findViewById(R.id.fab);fab.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show();}});final HttpRequest request = new HttpRequest(URL);findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {request.request(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {Log.e("error", "请求失败");}@Overridepublic void onResponse(Call call, Response response) throws IOException {Log.e("success", "请求成功:" + response.body().string());}});}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();//noinspection SimplifiableIfStatementif (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}

源码打包下载地址:

/fengfanchen/AndroidReverse/tree/master/OkHttp3Demo

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。