2012-06-20 61 views
0

我一直在尋找相當長的一段時間,並不能得到任何直接的答案,如何從Windows Phone 7 API調用Java Servlet?我已經讀過'WebClient'和'HttpWebRequest',但是對於普通的C#和windows phone,這些實現看起來有所不同。如何從Windows Phone 7調用Java Servlet

的方法(或相當空殼)我是這樣的:

public Login(string userName, password){ 

    string servletUrl = "http://172.12.5.35:8080/SomeService/login?u="+userName+"&p="+password; 

    //Somehow to call the servlet>> 

} 

我是一個Java編碼器,雖然語法幾乎是相同的,我已經在深水的一端扔在這裏的編碼爲Windows手機。

也許值得一提的是,servlet返回JSON。如何處理在C#中的?

預先感謝您向正確的方向推動!使用HttpWebRequest的


我嘗試:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(servletUrl); 
HttpWebResponse response = (HttpWebRequest)request.BeginGetResponse(); 

但我看到的是'BeginGetResponse()需要兩個參數,即AsyncCallback的&對象的狀態。這兩個論點是什麼?在這種情況下,我的將會是什麼?

回答

1

下面是示例代碼,這使得web請求得到JSON數據

WebClient client = new WebClient(); 
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted); 
client.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/public_timeline.json", UriKind.Absolute)); 

和DownloadStringCompleted處理程序,

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    var jsonResponse= e.Result; // To check whether the json response is obtained or not 
    var jsonData = JsonConvert.DeserializeObject<SomeObject>(e.Result); 
} 

在上面的代碼中,SomeObject是類t您想要將JSON數據轉換爲。

此外,粘貼你的json的URL或json的數據在this link爲你生成合適的類。

+0

看起來不錯! :)我會盡快給它試試.. – Tiwaz89

+0

'client_DownloadStringCompleted'究竟是什麼?此Json存儲一次檢索後的變量? – Tiwaz89

+1

檢查編輯的答案 – nkchandra

2

我讀過'WebClient'和'HttpWebRequest',但是實現對於普通的C#和windows phone來說似乎有所不同。

那麼,它不支持同步API,就這樣。 WP7 API有很多方面(通常是Silverlight),它們是完整桌面框架的子集。你需要異步思考 - 你會開始提出請求,當你得到迴應時回調觸發。

請注意,這與您正在與之交談的Web服務器的實現無關。無論您是在與Java servlet,Rails應用程序進行交談,您都會編寫相同的代碼。

也許值得一提的是,servlet返回JSON。如何處理在C#中的?

個人而言,我喜歡Json.NET,並已使用,成功地在Windows Phone 7

+0

感謝您清理Jon Jon。就個人而言,我寧願使用HttpWebRequest,如果它是可能的話,如果你看看我編輯的帖子,你會看到我有關於這個問題...... – Tiwaz89

+0

@DeanGrobler:第一個是回調。第二個是剛剛傳遞給回調的狀態,作爲方便。您需要了解代表創建回調。所有這些都可以通過教程和文檔來完成,而不是通過SO上的問題來完成。搜索「WebRequest教程silverlight」會給出不少點擊。 –

+0

再次感謝。我同意,否則我會整天坐在這裏問Q's。最後一個問題,你如何看待nkchandra的答案?應該管用? – Tiwaz89