2

私は、Webサービスを使用してJSONを介してデータを取得するAndroidアプリケーションに取り組んでいます。以下は、アプリにログインするために使用している JSON 文字列です。パラメーター、wsfunction、構文はすべてチェックされ、正しいことがわかりました。

MainActivity.java

String loginjson = "{\"userDetails\":[{\"username\":"
       +"\""
+username.getText().toString().trim()
+"\",\"password\":"
+"\""
+password.getText().toString()
+"\",\"ipaddress\":"
+"\""
+Constants.ipaddress
+"\",\"lastaccess\":\"0\"}],\"wsfunction\":\"user_authentication\"}";

Constants.sercall.servercall(loginjson);

また、サーバーへの要求とサーバーからの応答のロジックが記述されているコードもここにあります。

サーバーコール.java

import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import android.util.Log;
public class Servercalls {

        public String response_str="";
        public HttpClient httpclient = new DefaultHttpClient();
        public HttpPost httppost = new HttpPost(url); //PHP webservice url

        public void servercall(String jsonstring){
         try {
                 Log.d("Request to server",jsonstring);  
                JSONArray postjson=new JSONArray();
                    postjson.put(jsonstring);
                    httppost.setHeader("json",jsonstring);
                     httppost.getParams().setParameter("jsonpost",postjson);
                HttpResponse response;
                response = httpclient.execute(httppost);
                   if(response != null){
                InputStream is = response.getEntity().getContent();
                     BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                     String line="";
                          while ((line = reader.readLine()) != null) {
                                         response_str=line;
                                Log.e("Response from server",response_str);  
                           }         
                        }
                        } catch (ClientProtocolException e) {
                        // TODO Auto-generated catch block
                        Log.e("cpexception", "Error in client protocol" + e.toString());
                        } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        } catch (Exception e) {
                        Log.e("log_tag", "Error in http connection "+ e.toString());
                                }
         }

}

次のように出力しています。

{"error":1,"msg":"サービスが指定されていません"}

サーバーから適切な応答を得るのを手伝ってください....

4

0 に答える 0