gpt4 book ai didi

java - 无法使用 asynchTask 从服务器获取响应

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

我正在尝试创建登录名,并且用户信息位于远程服务器上,但是当我运行应用程序以获取 token 时,我不断收到类型 W/System.err: java.io.FileNotFoundException 的错误: https://uat.elma.bz/revenueapi/token “.Api 正在通过 Postman 运行,不确定可能是什么问题,请您提出建议。

private class userlogin extends AsyncTask<String, String, String> {
@Override
public void onPreExecute() {
/* progressDialog = new ProgressDialog(userLogin.this);
progressDialog.setMessage("please wait as you get connected to the internet");
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(false);
progressDialog.show();*/
}

@Override
public String doInBackground(String... para) {
String response = "";

Map<String, String> params = new LinkedHashMap<>();
URL url = null;
try {
url = new URL(webconfigs.LOGIN_URL);
} catch (MalformedURLException e) {
e.printStackTrace();
}
;
params.put("grant_type", webconfigs.GRANT_TYPE);
params.put("username", para[0]);
params.put("Content-Type", webconfigs.CONTENT_TYPE);
params.put("password", para[1]);
StringBuilder postData = new StringBuilder();
for (Map.Entry<String, String> param : params.entrySet()) {
try {
if (postData.length() != 0) postData.append('&');
try {
postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
postData.append('=');
postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));

} catch (Exception e) {
}
}
try {
String urlparameters = postData.toString();
URLConnection conn = url.openConnection();
conn.setRequestProperty("Method", "POST");
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(urlparameters);
writer.flush();

String line = "";
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
//just to show the result
Log.e("READER", response);
while (String.valueOf(line = reader.readLine()) != null) {
response += line;
}
writer.close();
reader.close();
return response;

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

return null;
}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Log.e(">>>>LOGINSERVERRESPONSE", ">>>>>" + result);
//progressDialog.dismiss();
try {
JSONObject results = new JSONObject(result);
String token = results.getString("access_token");
if (token != null) {
String accessToken = results.getString("access_token");
String tokenType = results.getString("token_type");
String dateIssued = results.getString(".issued");
String expiryDate = results.getString(".expires_in");
startActivity(new Intent(getApplicationContext(), Homedashboard.class));
}

} catch (Exception e) {
}
}

}

最佳答案

您可以在 AndroidManifest.xml 中添加此部分 (android:usesCleartextTraffic="true") 吗?像这样。

<manifest ...>


<application
...
android:usesCleartextTraffic="true">

</application>

</manifest>

关于java - 无法使用 asynchTask 从服务器获取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076141/

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