这是我在浏览器中发布的php post查询:
{"message":"Required field(s) is missing"}
我认为这是jsonObject
,因为在phpScript中我已经在Json中编码了它。然后我的问题是我想在我的Android应用程序中获取结果内容..请注意,我正在做一个简单的登录Android系统.....
现在当我试图在我的Android代码中获取它时,我得到了这个异常:JSON异常****** java.lang.String类型的值< \ br无法转换为JSONObject
这是我的Android代码:
//setting the valuesPairs
List<NameValuePair> nameValuePairs= new ArrayList<NameValuePair>(1);
//setting the valuesPairs
nameValuePairs.add(new BasicNameValuePair("name", nameData));
nameValuePairs.add(new BasicNameValuePair("email", emailData));
try {
//setting up the default HttpClient
HttpClient httpClient=new DefaultHttpClient();
/*setting up the POSTHttp methodd and parsing the url in case of online and the ip adress in case of localhost database
and the phifile.*/
HttpPost httpPost=new HttpPost("http://192.168.1.100:80/phpprojecttest/EmailLogin.php");
//Parsing the NameValuesPairs inside the HttpPost
System.out.println("************Opening URL And Setting POst PArm In it ***********:" );
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//getting the response
HttpResponse response=httpClient.execute(httpPost);
response.getStatusLine();
System.out.println("Le statut de votre requète est :" +response.getStatusLine().getStatusCode());
//Setting up the Entity
HttpEntity httpEntity=response.getEntity();
inpuStream=httpEntity.getContent();
BufferedReader reader= new BufferedReader(new InputStreamReader(inpuStream));
String line;
// JSONObject jsonObject= new JSONObject(inpuStream);
String myres;
while ((line = reader.readLine()) != null) {
reponseHTTP.append(line +"\n");
System.out.println("*Reading***"+ reponseHTTP);
}
//on converti le text de la response dasn un Object Json
JSONObject jsonObject= new JSONObject(reponseHTTP.toString());
String stringObject=jsonObject.getString("message");// on prend la cle car on s'est au préalable que c'est un double
System.out.println("********"+ stringObject);
System.out.println("*******FUCK******"+reponseHTTP.toString());
} catch (ClientProtocolException e) {
Log.e("ClientProtocol***********", e.getMessage());
} catch (IOException e) {
Log.e("IOExeption***********", e.getMessage());
/*} catch (JSONException e) {
Log.e("JSON Avecs Ses Erruers***********", e.getMessage());
*/ } catch (JSONException e) {
System.out.println("*+JSON EXception*****"+ e.getMessage());
}
答案 0 :(得分:1)
我可能是错的朋友,但我相信你正在返回HTML代码 &#34; *现在,当我试图在我的Adroide代码中获取它时,我得到了以下异常:JSON EXception ******无法将类型为java.lang.String的值&lt; \ br转换为JSONObject& #34;
你会看到它所说的位置&#34;值&lt; \ br &#34; 但是你想要检索的价值是&#34; {&#34;消息&#34;:&#34;缺少必填字段&#34;}&#34;正确?
我建议打印出reponseHTTP.toString()的结果,然后在尝试转换之前确保它是json。 :)
答案 1 :(得分:0)
感谢您对我的问题的快速回复,然后我解决了我的问题
我使用GetMethod获取My JSONObject强大然后它对我有用这是完整的工作代码......
//setting up the default HttpClient
HttpClient httpClient=new DefaultHttpClient();
/*setting up the POSTHttp methodd and parsing the url in case of online and the ip adress in case of localhost database
and the phifile.*/
HttpGet httpGet=new HttpGet("http://192.168.1.100:80/phpprojecttest/EmailLogin.php?name="+nameData+"&email="+emailData);
try {// on essay d'envoyer la requette
HttpResponse response=httpClient.execute(httpGet);
//on verify si c'est okey via le status doit etre = 200 pour true
StatusLine statusLine= response.getStatusLine();
int statusCode=statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity entity=response.getEntity(); // on recupere le corp de la requette qui contien du Json
// on lit le corp via InpuStream
InputStream content=entity.getContent();//ici onrecuper des données binaire
// onlit le corp du reponse ligne parligne
BufferedReader reader= new BufferedReader(new InputStreamReader(content)); //avecIpStreamReader on construit le caracteère et avec buffRea on construit la ligne
String line;
while ((line = reader.readLine()) != null) {
reponseHTTP.append(line);
}
System.out.println("---getting Code Statuts--- " +statusCode);
//on converti le text de la response dasn un Object Json
JSONObject jsonObject= new JSONObject(reponseHTTP.toString());
System.out.println("---Debut dgetting--- " +statusCode);
String prixFrom=jsonObject.getString("message");// on prend la cle car on s'est au préalable que c'est un double
System.out.println("*+++++++++++*"+ prixFrom);
} else {
System.out.println("*****************EUrror CODES " +statusCode);
}
} catch (JSONException e) {
System.out.println("*******EUrrorJSON**" +e);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}