gpt4 book ai didi

java - org.json.JSONException : Value Data of type java. lang.String 无法转换为 JSONObject

转载 作者:行者123 更新时间:2023-11-29 19:11:17 24 4
gpt4 key购买 nike

这是我的 Android 代码:

 public void SendDataToServer(final String name, final String email, final String password){
class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {

String QuickName = name ;
String QuickEmail = email ;
String QuickPassword = password;


List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

nameValuePairs.add(new BasicNameValuePair("nome", QuickName));
nameValuePairs.add(new BasicNameValuePair("email", QuickEmail));
nameValuePairs.add(new BasicNameValuePair("password", QuickPassword));


try {
HttpClient httpClient = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(Configs.signup);

httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpClient.execute(httpPost);

HttpEntity entity = response.getEntity();


} catch (ClientProtocolException e) {

} catch (IOException e) {

}
return "Data Submit Successfully";
}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);


Log.d(result, "Value");


try {

JSONObject jo = new JSONObject(result);
String status = jo.optString("status");


if (status.equals("0")) {
Toast.makeText(Signup.this, "Username already exists", Toast.LENGTH_LONG).show();

} else if (status.equals("1")) {
Intent intent = new Intent(Signup.this, Login.class);
startActivity(intent);

Toast.makeText(Signup.this, "Registered successfully", Toast.LENGTH_LONG).show();
Toast.makeText(Signup.this, "Verify your email adress in email received", Toast.LENGTH_SHORT).show();
finish();
} else if (status.equals("2")) {
Toast.makeText(Signup.this, "Failed to Signup", Toast.LENGTH_LONG).show();
}
//}

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

}
}
SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
sendPostReqAsyncTask.execute(name, email, password);
}

这是错误:

07-21 12:55:35.297 24973-24973/com.futegolo.igomessenger W/System.err: org.json.JSONException: Value Data of type java.lang.String cannot be converted to JSONObject

这是我的 json 响应

{"status":0}

最佳答案

这是因为您没有在 doInBackground() 方法中返回来自服务的实际响应。你回来了

 return "Data Submit Successfully"

当您在 onPostExecute() 方法中转换该字符串时,显然这不是有效的 JsonObject

在此“HttpEntity entity = response.getEntity();”之后替换您的代码

HttpEntity entity = response.getEntity();
String result = null;
if (entity != null) {

// A Simple JSON Response Read
InputStream instream = entity.getContent();
result= convertStreamToString(instream);
// now you have the string representation of the HTML request
instream.close();
}

private static String convertStreamToString(InputStream is) {
/*
* To convert the InputStream to String we use the BufferedReader.readLine()
* method. We iterate until the BufferedReader return null which means
* there's no more data to read. Each line will appended to a StringBuilder
* and returned as String.
*/
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();

String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();

而是返回您的硬编码字符串返回结果。希望有所帮助。如需进一步引用,您可以点击以下链接

https://stackoverflow.com/questions/4457492/how-do-i-use-the-simple-http-client-in-android

关于java - org.json.JSONException : Value Data of type java. lang.String 无法转换为 JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45237105/

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