1

クラスを使用して WebService を呼び出した人がいるかどうかを知りたいのですが、この WS は組織参照の後に整数を受け取り、json ファイルに応答します。

実際に私の問題は、webreference を使用せずに webservice を呼び出し、json ファイルを読み取って辞書に解析することです。

私はあなたの助けに感謝します

よろしくお願いします。私のコードを教えてください

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Net;
using Dimex.ChangeSAP.Core.Utilities;

namespace Dimex.ChangeSAP.Core.Utilities
{
    class ConsumirWebService
    {
        public void ConsumirWS()
        {

            Dimex.ChangeSAP.Core.Entities.Seguridad.Usuario users = new Dimex.ChangeSAP.Core.Entities.Seguridad.Usuario();
            int idUsuaro = users.IdUsuario;

            try
            {

                System.Net.WebRequest req = System.Net.WebRequest.Create("http://192.168.8.97/PassportPruebas/api/partners?enterprise_system_id=1&organizational_reference=" + idUsuaro);
                //req.Proxy = new System.Net.WebProxy(ProxyString, true);
                //Add these, as we're doing a POST
                req.ContentType = "application/x-www-form-urlencoded";
                req.Method = "POST";
                //We need to count how many bytes we're sending. 
                //Post'ed Faked Forms should be name=value&
                string postData = "OPERATION_NAME=ADD_REQUEST&TECHNICIAN_KEY=90BA&INPUT_DATA=" + sendXML;
                byte[] bytes = System.Text.Encoding.ASCII.GetBytes(postData);
                req.ContentLength = bytes.Length;
                System.IO.Stream os = req.GetRequestStream();
                os.Write(bytes, 0, bytes.Length); //Push it out there
                os.Close();
                System.Net.WebResponse resp = req.GetResponse();
                if (resp == null)
                {
                    return null;
                }
                System.IO.StreamReader sr =
                      new System.IO.StreamReader(resp.GetResponseStream());

                string respuesta = sr.ReadToEnd().Trim();
                return respuesta;

            }
            catch (Exception ex)
            {
                return "";
                //throw or return an appropriate response/exception
            }


        }
    }
}
4

2 に答える 2

2

さて、実際には、この種の問題を抱えている人のための私のコードもここにあります。

        public static string LlamarWebService(string url)
        {

            try
            {
                System.Net.WebRequest req = System.Net.WebRequest.Create(url);

                req.ContentType = "application/json";
                req.Method = "GET";

                System.Net.WebResponse resp = req.GetResponse();
                if (resp == null) return null;
                System.IO.StreamReader sr =
                      new System.IO.StreamReader(resp.GetResponseStream());

                string respuesta = sr.ReadToEnd().Trim();
                return respuesta;

            }
            catch (Exception ex)
            {
                throw ex;
                // return "";
                //throw or return an appropriate response/exception
            }
        }
于 2013-08-08T15:50:17.040 に答える
1

wsdl ユーティリティまたは VisualStudio コマンド プロンプトで svcutil を使用してプロキシ クラスを作成できます コマンド wsdl.exe /out:[ファイルのパスと名前] /language:CS を入力します

于 2013-08-07T07:06:22.100 に答える