0

Android アプリケーションを json c# Web サービスと通信しようとしています。Web サービスから json オブジェクトを取得する必要がありますが、json オブジェクトを Web サービスに送信できません。

これが私のWebサービスコードです

 [WebMethod]
    public void recibePosicion(string json_cad)
    {

        JavaScriptSerializer jss = new JavaScriptSerializer();
        Posicion nueva_posicion = jss.Deserialize<Posicion>(json_cad); 
        PosicionDAO posicion_dao = new PosicionDAO();
        posicion_dao.InsertaPosicion(nueva_posicion);


    }

そして、ここに私のandoridコードがあります

    HttpClient client = new DefaultHttpClient();
         HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
         HttpResponse response;
         JSONObject json = new JSONObject();

         try
         {
             HttpPost post = new HttpPost("http://10.0.2.2:1218/JSON.asmx/recibePosicion");
             post.setHeader("Accept", "application/json");
             post.setHeader("Content-type", "application/json");


             json.put("idPosicion", "-1");
             json.put("x", "100");
             json.put("y", "200");
             StringEntity se = new StringEntity( json.toString(), HTTP.UTF_8);  
             se.setContentType("application/json");
             post.setEntity(se);                                  

            HttpResponse getResponse = client.execute(post);

            final int statusCode = getResponse.getStatusLine().getStatusCode();

            if (statusCode != HttpStatus.SC_OK) { 
               Log.w(getClass().getSimpleName(), "Error " + statusCode + " for URL " + url); 
               return null;
            }





         }
         catch(Exception e)
         {
             e.printStackTrace();
             System.out.println("Cannot Estabilish Connection");
         }

statuscode 500 を取得します。代わりに、Web メソッドを

public void recibePosicion()

サービスを呼び出すことができますが、json データを取得する方法がわかりません。

その問題を解決するためのヒントをいただければ幸いです。

ありがとう。

4

1 に答える 1

-1

コードにはいくつかの間違いがあります。

  1. WebMethodはstatic
  2. webmethodでjsonオブジェクトを取得したいのですが、webmethodのパラメーターはタイプです。代わりに次のstringように変更してください。object

    [WebMethod]
    public static void recibePosicion(object json_cad){
    
        JavaScriptSerializer jss = new JavaScriptSerializer();
        Posicion nueva_posicion = jss.Deserialize<Posicion>(json_cad); 
        PosicionDAO posicion_dao = new PosicionDAO();
        posicion_dao.InsertaPosicion(nueva_posicion);
    
    }
    
于 2012-05-13T14:32:10.673 に答える