流媒体下载从WCF到安卓,使用Json,休息或肥皂
本文关键字:Json 使用 肥皂 下载 WCF 流媒体 | 更新日期: 2023-09-27 18:29:18
我正在开发一个wcf服务来流式传输数据文件&它的相关信息对于android客户端来说,我是WCF的新手,只是有很多阅读,很多时候都不清楚哪种方法是最好的!
考虑到这将是一个android设备调用它,我应该对该服务采用哪种格式?考虑一下我的代码以及什么可以很容易地实现,soap、json、rest或其他
任何示例都是受欢迎的,尤其是带有我在下面定义的代码的示例。谢谢
[MessageContract]
public class DownlaodStreamItem
{
[MessageHeader]
public Int64 ItemID { set; get; }
[MessageHeader]
public Int64 SizeOfFile { set; get; }
[MessageHeader]
public String Name { set; get; }
[MessageBodyMember]
public Stream Data { set; get; }
}
[MessageContract]
public class someString
{
[MessageBodyMember]
public string SomeString{ set; get; }
}
服务
[OperationContract]
DownlaodStreamItem DownloadMessagecontact(someString SomeString);
服务:IService
public DownlaodStreamItem DownloadMessagecontact(someString SomeString)
{
DownlaodStreamItem DLITEM = new DownlaodStreamItem();
// Populate & return DownlaodStreamItem ....
return DLITEM;
}
对于android作为客户端和.NET作为服务,最好的方法是编写WCF REST服务。因为在这种情况下,您不需要在android端创建任何代理类,只需发出Http请求就可以使用它。
您可以使用WCF REST服务模板40(CS)轻松地编写RESTWCF服务。请参考如何写。
然后,您可以在android上简单地使用以下代码来使用此REST服务。希望这对你有帮助。
try {
String URL;
URL = "http://localhost/MyRESTSvc/DownloadStreamItem";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);
InputStream inputStream = getResources().openRawResource(R.raw.task);
// Here task is any raw file you want to keep as input.. you may ignore it.
InputStreamEntity reqEntity = new InputStreamEntity(inputStream, -1);
reqEntity.setContentType("binary/octet-stream");
reqEntity.setChunked(true); // Send in multiple parts if needed
httppost.setEntity(reqEntity);
HttpResponse response = httpclient.execute(httppost);
displayAlert("Success !!");
}
catch (ClientProtocolException e) {
displayAlert(e.getMessage());
}
catch (IOException e) {
displayAlert(e.getMessage());
}
catch (Exception e) {
displayAlert(e.getMessage());
}