2014-03-04 179 views
0

我正在將Android Java應用程序移植到C#,Windows商店應用程序。它必須通過多部分內容,圖像和一些鍵/值數據將POST發送到服務器。 java代碼:Windows商店應用程序Post with multipartFormDataContent

​​

和Windows店內碼:

MultipartFormDataContent multipartContent = new MultipartFormDataContent(); 
     ByteArrayContent byteContent = new ByteArrayContent(byteArray); 
     multipartContent.Add(byteContent, fileName);     
     multipartContent.Add(new StringContent(User), "usr"); 
     multipartContent.Add(new StringContent(Session), "sid"); 
     multipartContent.Add(new StringContent(method), "action"); 

但隨着differend響應服務器響應。會是什麼呢?

+0

請提供更多信息。它是你的服務器嗎?或者你無法控制的第三方服務器?如果它是你自己的,你有一個代碼依賴於UserAgent(瀏覽器字符串)? – Tseng

+0

不,這不是我的服務器 –

+0

然後嘗試手動設置用戶代理並使用相同的UserAgent並查看結果是否仍然存在差異 – Tseng

回答

0

如果服務器確定用戶代理的輸出,則嘗試在兩個應用上設置相同的UserAgent。

http://developer.android.com/reference/android/net/http/AndroidHttpClient.html

// UserAgent taken from http://www.useragentstring.com/pages/Android%20Webkit%20Browser/ 
// Pick one you find suitable or use Firefox/Chrome UserAgents, whatever works for you 
String userAgent = "Mozilla/5.0 (Linux; U; Android 2.3.4; fr-fr; HTC Desire Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"; 
AndroidHttpClient httpClient = AndroidHttpClient.getInstance(userAgent); 
httpClient.execute(post); 

C#/。NET

// make sure to use same user agent in both apps 
string userAgent = "Mozilla/5.0 (Linux; U; Android 2.3.4; fr-fr; HTC Desire Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"; 
HttpClient httpClient = new HttpClient(); 
httpClient.DefaultRequestHeaders.Add("user-agent",userAgent); 

這應該給你同樣的結果,如果服務器返回一個基於用戶代理頭不同的結果。

相關問題