所以我正在开发一些WCF REST WebService方法。将消耗它们的应用程序对我来说是一个黑盒子,我只知道它是一个Phonegap应用程序(java)和方法定义。我也有相同的应用程序开发的等效JAVA休息服务的源代码,但是对于不同的系统。我们的想法是,许多人力资源系统可以通过实施网络服务来使用相同的应用程序。
文档说方法在请求主体中需要“application / json”,这转换为.NET中的常规String。但是,当我部署Web服务并让Phonegap-App调用此方法时,我得到了一个错误的请求。
看到已经实现并且正常工作的服务的java实现,所述方法需要 Java.Io.InputStream 作为正文中的输入:
@Override
public Response manageSubAbs(String codeEnv, String user, String password, String produit, String module, InputStream absSubFlux)
{
//do stuff
}
除了最后一个参数之外的所有参数都是URL-Query参数,当我通过Fiddler确认时,输入流在身体中是预期的。所以,因为在.NET中没有相同的InputStream ....有没有办法可以开发WCF REST方法接受这样的输入或者我的选择是什么?
谢谢
答案 0 :(得分:0)
一般来说,在.NET中,请尝试:
[OperationContract]
[WebInvoke(UriTemplate = "MobileUploadPhoto?JobId={jobId}&SessionId={sessionId}&Description={description}&DateTaken={dateTaken}&TypeId={typeid}", Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
public string MobileUploadPhoto (String jobId, String sessionId, String description, string dateTaken, int typeid, Stream image)
或下载
[OperationContract]
[WebGet(UriTemplate = "MobileDownloadPhotoThumbnailByFileId?SessionId={sessionId}&FileId={fileId}&JobId={jobId}", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
public Stream MobileDownloadPhotoThumbnailByFileId(string sessionId, int fileId, int jobId)
我希望我能正确理解你的问题。