2014-03-04 183 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); 

这应该给你同样的结果,如果服务器返回一个基于用户代理头不同的结果。

相关问题