Vikram Singh Rathaur Ответов: 1

Как использовать службу REST в C# с несколькими параметрами(7 параметров)


Я хочу использовать сервис REST в C# с несколькими параметрами(7 параметров)
Параметры таковы-
1.ID пользователя
2.инвалидов
3.requestXML
4.Параметр producttype
5. Версия Продукта
6.reqVolType
7 мбрид,

Что я уже пробовал:

protected void Button1_Click(object sender, EventArgs e)
   {
       contentinxml.Load(Server.MapPath("/new.xml"));

       string dataPacketIN = contentinxml.OuterXml;

       URL = "http://test.highmark.in/Inquiry/doGet.service/requestResponse";
       DATA = @"{requestXML=" + dataPacketIN + "userId=" + b2 + ",password=" + b3 + ",productType=" + b5 + ",productVersion=" + b6 + " ,mbrid=" + b4 + ",reqVolType=" + b7 + "}";

       CreateObject();
   }

   private static void CreateObject()
   {
       HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);

       request.Method = "POST";
       request.ContentType = "text/xml";
       request.ContentLength = DATA.Length;
       using (Stream webStream = request.GetRequestStream())
       using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII))
       {
           requestWriter.Write(DATA);
       }

       //try
       //{
           WebResponse webResponse = request.GetResponse();
           using (Stream webStream = webResponse.GetResponseStream())
           {
               if (webStream != null)
               {
                   using (StreamReader responseReader = new StreamReader(webStream))
                   {
                       string response = responseReader.ReadToEnd();
                       Console.Out.WriteLine(response);


                   }
               }
           }
       

   }

Garth J Lancaster

Вы думали об использовании чего-то вроде RestSharp ? http://restsharp.org/

1 Ответов

Рейтинг:
0

Garth J Lancaster

Когда я вижу параметры, собранные вместе таким образом, я думаю так же, как если бы я увидел конкатенацию SQL, фу !

Вот пример со страницы RestSharp

var client = new RestClient("http://example.com");
// client.Authenticator = new HttpBasicAuthenticator(username, password);

var request = new RestRequest("resource/{id}", Method.POST);
request.AddParameter("name", "value"); // adds to POST or URL querystring based on Method
request.AddUrlSegment("id", "123"); // replaces matching token in request.Resource

// easily add HTTP Headers
request.AddHeader("header", "value");

// add files to upload (works with compatible verbs)
request.AddFile(path);

// execute the request
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string

// or automatically deserialize result
// return content type is sniffed but can be explicitly set via RestClient.AddHandler();
RestResponse<Person> response2 = client.Execute<Person>(request);
var name = response2.Data.Name;

// easy async support
client.ExecuteAsync(request, response => {
    Console.WriteLine(response.Content);
});

// async with deserialization
var asyncHandle = client.ExecuteAsync<Person>(request, response => {
    Console.WriteLine(response.Data.Name);
});

// abort the request on demand
asyncHandle.Abort();


Посмотрите, например, на метод "AddParameter" - конечно, это должно быть проще ! ... RestSharp - простой REST и HTTP-клиент для .NET[^]