我正在尝试将一个简单的 json 对象发送到服务器。我可以毫无问题地使用 postman 将 json 对象发送到服务器。我正在使用来自以下链接的 Tom Alabaster 的正确答案中的代码: How To Send json Object to the server from my android app
但在以下行中出现找不到文件错误(提供我的服务器名称): DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
服务器通过 Postman 正常工作。我想更深入地分析这个问题。我如何捕获任何有用的错误代码?
Error code:
08-24 18:21:21.193 17299-20507/com.tulga.nar.mytracker I/System.out:
(HTTPLog)-Static: isSBSettingEnabled false
08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err:
java.io.FileNotFoundException: https://myserver....../mydatabase
08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err:
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConn
ectionImpl.java:242)
08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err: at
com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err:在 com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err: 在 com.tulga.nar.mytracker.MainActivity$SendDeviceDetails.doInBackground(MainActivity.java:58) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err: 在 com.tulga.nar.mytracker.MainActivity$SendDeviceDetails.doInBackground(MainActivity.java:33) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err: 在 android.os.AsyncTask$2.call(AsyncTask.java:295) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err:在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err: 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err:在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err: 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 08-24 18:21:21.623 17299-20507/com.tulga.nar.mytracker W/System.err:在 java.lang.Thread.run(Thread.java:818) 08-24 18:21:51.523 17299-17299/com.tulga.nar.mytracker V/ActivityThread:updateVisibility:ActivityRecord{3cf0352 token=android.os.BinderProxy@24d32cf {com.tulga.nar.mytracker/com.tulga。 nar.mytracker.MainActivity}} 显示:true
最佳答案
登录示例。在这里我们发布登录用户名和密码
String lname = "";
try {
url = new URL(SNFServerURL+SNFAuthResource);
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url.toString());
post.setHeader("Content-type", "application/json");
post.setHeader("Accept", "application/json");
JSONObject object = new JSONObject();
String message;
object.put("password", Flags.password);
object.put("username", Flags.username);
message = object.toString();
post.setEntity(new StringEntity(message, "UTF8"));
HttpResponse response = client.execute(post);
int statusCode = response.getStatusLine().getStatusCode();
if (200 == statusCode) {
String json = EntityUtils.toString(response.getEntity());
JSONObject result = new JSONObject(json);
token = result.getString("token");
TokenActivity.fname = result.getString("firstName");
TokenActivity.lname = result.getString("lastName");
}
} catch (Exception ex) {
ex.printStackTrace();
}
关于android - 将 json 对象发送到服务器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864253/