2016-01-22 52 views
0

我想開發一個項目,我的android應用程序向wcf Web服務發送一個IP地址和端口號: 但我不能這樣做 它有可能有Web服務的響應? IService.cs從Android客戶端發送兩個參數到WCF WS

 [OperationContract] 
    [WebGet(UriTemplate = "Connection/{ipadress}/{port}")] 
    bool Connection(string ipadress,string port); 

Service.svc.cs

public bool Connection(string ipadress, string port) 
    { 
     /*   */ 
      return true; 

    } 

代碼的Android

public boolean Connection_Net() { 
    String url_service = "http://algotimesheet.azurewebsites.net/Service1.svc/Connection/ipadress/port"; 
    URLConnection urlConnection; 
    DataOutputStream dataOutputStream; 
    DataInputStream dataInputStream; 
    URL url; 

    try { 
     url = new URL(url_service); 
     urlConnection = url.openConnection(); 
     urlConnection.setDoOutput(true); 
     urlConnection.setDoInput(true); 
     urlConnection.setUseCaches(false); 
     urlConnection.setRequestProperty("Content-Type", "application/json"); 
     urlConnection.setRequestProperty("Host", "android.schoolportal.gr"); 
     urlConnection.connect(); 

     JSONObject jsonObject = new JSONObject(); 
     jsonObject.put("ipadress","192.168.1.1"); 
     jsonObject.put("port","4370"); 
     OutputStreamWriter outputStreamWriter = new OutputStreamWriter(urlConnection.getOutputStream()); 
     outputStreamWriter.write(jsonObject.toString()); 
     outputStreamWriter.close(); 


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

    return true; 
} 
+0

你不需要任何的JSON對象,只是讓

public class Data() { public string ip {get; set;} public string port{get;set;} } 

一個「GET 「請求像'http:// algotimesheet.azurewebsites.net/Service1.svc/Connection/192.168.1.1/4370'(不像你試圖」POST「) – Eser

+0

以及如何發送請求? –

+0

http://bit.ly/1S02pbe – Eser

回答

-1

如果送你需要編寫的服務期待的對象,並使用POST一個JSON

[OperationContract] 
[WebInvoke(Method="POST", 
    RequestFormat = WebMessageFormat.Json, 
    UriTemplate = "Connection")] 
bool Connection(Data data); 

public bool Connection(Data data) 
{ 
    /*   */ 
     return true; 

} 

和設計這樣的對象:如果你想使一個GET你只需要添加值的URL

+0

我想做一個'GET',但是我的解決方案在'urlConnection.connect();'之後不起作用 –

+0

''我必須做什麼來發送數據? –

+0

@AbdAlah嘗試將值添加到URL中,然後執行'urlConnection.connect();',我不認爲你需要做任何事情 –