gpt4 book ai didi

java - 尝试从 RESTful API 获取 JSON 对象时 Volley 无连接错误

转载 作者:行者123 更新时间:2023-12-01 18:14:33 25 4
gpt4 key购买 nike

我试图从 api 获取有关用户 ID 1 的用户信息并记录它,但我不断遇到以下错误:

E/Rest response: com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: SSL handshake aborted: ssl=0x7c74f2dc88: I/O error during system call, Connection reset by peer

这是我第一次使用 RESTful API,所以我有点缺乏经验。我试图在堆栈溢出上找到这个问题的解决方案,但它们似乎不起作用。我看到一些用户提到这是 Android API 22 5.1 Lollipop 以下 Android 设备常见的错误,但我使用的是 Android 6.0 Marshmallow,并且仍然收到此错误。

这是我的代码:

public class MainActivity extends AppCompatActivity {

String url = "https://ecoproduce.eu/api/User/1";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final SSLSocketFactory sslSocketFactory;
try {
sslSocketFactory = new TLSSocketFactory();
HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);
} catch (KeyManagementException ignored) {

} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}

RequestQueue requestQueue = Volley.newRequestQueue(this);

JsonObjectRequest objectRequest = new JsonObjectRequest(
Request.Method.GET,
url,
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("Rest response", response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Rest response", error.toString());
}
}
);

requestQueue.add(objectRequest);
}

}

最佳答案

通过切换 url 字符串来解决

String url = "https://ecoproduce.eu/api/User/1";

String url = "http://ecoproduce.eu/api/User/1";

并添加

android:usesCleartextTraffic="true"

在 Android list 文件中。在以下链接中找到答案: Android 8: Cleartext HTTP traffic not permitted

关于java - 尝试从 RESTful API 获取 JSON 对象时 Volley 无连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60400007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com