none
WebRequest & WebService RRS feed

  • 問題

  • 想請教

    我該怎麼使用WebRequest 使用 webservice的方法並且將結果轉為 我要的型態?

    例如下例是傳遞int 回傳string  想請教我使用的方式有誤嗎?

    當傳回 readstr 我又該怎麼轉為GetData 的回傳結果?

    如果我使用的webservice的方法 的參數包含ref 或是回傳的結果是其他型態dataset等等之類又該如何轉換呢?

    webservice

    public string GetData(int value)


    ap

     WebRequest request = WebRequest.Create("http://127.0.0.1/Service1.svc/GetData?value=5");
                request.Method = "GET";
                using (WebResponse webres = request.GetResponse())
                {
                    using (StreamReader reader = new StreamReader(webres.GetResponseStream()))
                    {
                        string readstr = reader.ReadToEnd();
                    }
                }




    • 已編輯 StuBoo 2018年5月16日 上午 01:40
    2018年5月16日 上午 01:39

解答

  • 像這種呼叫外部 service 不應該用 ref 吧 ? 你的 application 和 service 根本是在兩個不同的世界,用 ref 沒甚麼意義啊。

    一般來說, 在 application <--> service 的傳遞都是透過某種轉換或序列化

    比方 (以 post 來說, get 多半像你用的那樣直接帶在網址後面) application 產生一個要傳給 service 的 object (名字叫 sender 好了),接著把 sender 序列化成 json/xml 或其他甚麼東西 ---> 透過網路 (當然這中間又會做一大堆事情) --> service 收到這串 json/xml --> 將 json/xml 反序列成對應型別的 object --> 處理 --> 處理完產生一個回傳的資料 (假設叫 reply) --> 把 reply 序列化 --> 透過網路 --> application 接收 --> 再把 json/xml 反序列回對應的型別。

    (我中間忽略的很多詳細步驟,但大致上就長這樣)


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/


    2018年5月16日 上午 04:37
    版主
  • 你既然要使用一個 Service, 對方應該會給你 Service 的傳入/傳出規格吧 ?

    你可以先試一下,看看讀回的 stream 轉成字串後是甚麼內容。


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    • 已標示為解答 StuBoo 2018年5月22日 上午 01:43
    2018年5月16日 下午 01:34
    版主

所有回覆

  • 在 ap 那邊做轉型
    2018年5月16日 上午 03:02
  • 在 ap 那邊做轉型
    我想知道的是我要用什麼function 或是甚麼 來將readstr 轉為webservice回傳結果的string或是dataset
    2018年5月16日 上午 03:17
  • 理論上 你應該會知道你的 WCF 回傳的值的型別

    要嘛是你自己寫的,要嘛別人給的文件需要定義好

    接著 你可以先用 object 去接,然後用泛型去指定你要轉的型別。

    這是我覺得應該可以這樣做。

    2018年5月16日 上午 04:18
  • 像這種呼叫外部 service 不應該用 ref 吧 ? 你的 application 和 service 根本是在兩個不同的世界,用 ref 沒甚麼意義啊。

    一般來說, 在 application <--> service 的傳遞都是透過某種轉換或序列化

    比方 (以 post 來說, get 多半像你用的那樣直接帶在網址後面) application 產生一個要傳給 service 的 object (名字叫 sender 好了),接著把 sender 序列化成 json/xml 或其他甚麼東西 ---> 透過網路 (當然這中間又會做一大堆事情) --> service 收到這串 json/xml --> 將 json/xml 反序列成對應型別的 object --> 處理 --> 處理完產生一個回傳的資料 (假設叫 reply) --> 把 reply 序列化 --> 透過網路 --> application 接收 --> 再把 json/xml 反序列回對應的型別。

    (我中間忽略的很多詳細步驟,但大致上就長這樣)


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/


    2018年5月16日 上午 04:37
    版主
  • 像這種呼叫外部 service 不應該用 ref 吧 ? 你的 application 和 service 根本是在兩個不同的世界,用 ref 沒甚麼意義啊。

    一般來說, 在 application <--> service 的傳遞都是透過某種轉換或序列化

    比方 (以 post 來說, get 多半像你用的那樣直接帶在網址後面) application 產生一個要傳給 service 的 object (名字叫 sender 好了),接著把 sender 序列化成 json/xml 或其他甚麼東西 ---> 透過網路 (當然這中間又會做一大堆事情) --> service 收到這串 json/xml --> 將 json/xml 反序列成對應型別的 object --> 處理 --> 處理完產生一個回傳的資料 (假設叫 reply) --> 把 reply 序列化 --> 透過網路 --> application 接收 --> 再把 json/xml 反序列回對應的型別。

    (我中間忽略的很多詳細步驟,但大致上就長這樣)


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/


    像上述我要存取的service GetData方法  ,WebRequest 該適用哪種Method?

    我需要把參數 序列化成 json/xml 是 將int序列化成xml 在Create的地方讓value = xml物件嗎?

    如果多個參數的話會需要間隔 ','或其他之類的嗎?

    將接收到的json/xml 反序列回對應型別 即是回傳值嗎?

    如果不適用ref,是否有方式可以回傳多種型別的結果?


    • 已編輯 StuBoo 2018年5月16日 上午 11:51
    2018年5月16日 上午 11:50
  • 你既然要使用一個 Service, 對方應該會給你 Service 的傳入/傳出規格吧 ?

    你可以先試一下,看看讀回的 stream 轉成字串後是甚麼內容。


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    • 已標示為解答 StuBoo 2018年5月22日 上午 01:43
    2018年5月16日 下午 01:34
    版主