[OperationContract(Name="sayHelloJson")]

創(chuàng)新互聯(lián)服務(wù)項目包括安遠網(wǎng)站建設(shè)、安遠網(wǎng)站制作、安遠網(wǎng)頁制作以及安遠網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,安遠網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到安遠省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "sayHello", BodyStyle = WebMessageBodyStyle.Wrapped)]
String sayHello();
[OperationContract(Name = "SendMessageJson")]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SendMessage/{Message}", BodyStyle = WebMessageBodyStyle.Wrapped)]
String SendMessage(String Message);
比如說第一個不帶參數(shù)的:
那么第二個帶參數(shù)的應該怎么調(diào)用?(比如說參數(shù)是"abc")
我指的是在瀏覽器中或java的httpclient中,因為我準備在android上實現(xiàn)客戶端,所以.net的調(diào)用方式就不必講了。
你URITemplate已經(jīng)設(shè)置了。Get方式。
我猜測一下調(diào)用的URL應該是: 網(wǎng)站URL/SendMessage/你好
另外建議你使用REST WCF自帶的一個幫助頁面,里面會給出更精確的調(diào)用示例。
response.getStatusCode()==200:代表請求成功
response.getStatusCode()==303:代表重定向
response.getStatusCode()==400:代表請求錯誤
response.getStatusCode()==401:代表未授權(quán)
response.getStatusCode()==403:代表禁止訪問
response.getStatusCode()==404:代表文件未找到
response.getStatusCode()==500:代表服務(wù)器錯誤
樓主,網(wǎng)絡(luò)編程中,有異常是很正常的,網(wǎng)絡(luò)狀態(tài)不好的時候,就會調(diào)用失敗了。所以要處理好異常。
第一:在服務(wù)契約上標注一下你的回調(diào)契約是哪個即可。
[ServiceContract(CallbackContract = typeof(你的回調(diào)契約類型))]
第二:回調(diào)契約就是用于服務(wù)端控制客戶端的。比如,一個典型場景是,客戶端提交請求以后立即返回;服務(wù)端處理一段時間后,再通知客戶端結(jié)果。
第三:“假如我有一個總控制臺,想控制下面的各個客戶端,是不是必須使用wcf雙工技術(shù)才能實現(xiàn)?”是的。
第四:“QQ的遠程操作要用什么技術(shù)弄呢”這個就比較復雜了。簡而言之,就是操作端往接收端發(fā)送指令,接收端根據(jù)指令來操作,并返回畫面數(shù)據(jù)。比如,操作端發(fā)送鼠標鍵盤的信息,接收端把這些信息變成Windows消息,發(fā)送給操作系統(tǒng)(相當于重現(xiàn)一次鼠標鍵盤操作)。
也只能參照dyw那個帖子里面最后一位的辦法 通過java做中介服務(wù)來實現(xiàn)了
參考: Android to WCF: Streaming multi part binary images
WCF收到的數(shù)據(jù)也包括了MIME頭。所以WCF收到的長度大于啊Android發(fā)送的長度,因為MIME頭信息還是有規(guī)律的,就是最后"Content-Transfer-Encoding: binary\r\n\r\n",所以解析數(shù)據(jù)的時候,從這些字符后開始。
C# code?12345678910111213141516171819202122232425 internal static byte[] GetBytesFromStream(Stream stream, System.Text.Encoding encoding) { // Read the stream into a byte array byte[] data = ToByteArray(stream); Listbyte dataList = new Listbyte(); // Copy to a string for header parsing string content = encoding.GetString(data); string matchValue = "Content-Transfer-Encoding: binary\r\n\r\n"; int lastIndex = content.LastIndexOf(matchValue); int startingIndex = lastIndex + matchValue.Length; byte[] bytes = encoding.GetBytes(content.Substring(0, startingIndex - 1)); int bytesLength = bytes.Length; for (int i = bytesLength + 1; i data.Length; i++) { dataList.Add(data[i]); } return dataList.ToArray(); }
還有一種是使用MultipartParser
參考:
Reading file input from a multipart/form-data POST
C# code?12345678910 public void Upload(Stream stream) { MultipartParser parser = new MultipartParser(stream); if (parser.Success) { // Save the file SaveFile(parser.Filename, parser.ContentType, parser.FileContents); } }
使用 WCF 實現(xiàn) RESTful 方式的 WebService
網(wǎng)站題目:androidwcf的簡單介紹
新聞來源:http://chinadenli.net/article0/dsgcpio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、外貿(mào)建站、靜態(tài)網(wǎng)站、用戶體驗、面包屑導航、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)