如何使用System.Net.Http.HttpClient创建新的RT(请求跟踪器票证) [英] How to use System.Net.Http.HttpClient to create new RT(request tracker ticket)

查看:90
本文介绍了如何使用System.Net.Http.HttpClient创建新的RT(请求跟踪器票证)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

需要开发一个C#应用程序来创建新的RT票证,但https://rt-wiki.bestpractical.com/wiki/REST#C.23上的c#示例代码无效。



我从不同的地方找到了信息,但没有一个真的有关于如何使用C#HttpClient创建新的rt票证的例子。



这是我的尝试:



    private static async void HTTP_Create()

    {

            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(baseURL);



            string ticketUri = string.Format(" REST / 1.0 / ticket / new?user = {0}& pass = {1}",testUser.UserName,testUser.Password);



            //不工作

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var TicketDataContent = new List< KeyValuePair< string,string>>();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; TicketDataContent.Add(new KeyValuePair< string,string>(" id"," ticket / new"));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; TicketDataContent.Add(new KeyValuePair< string,string>(" Queue"," queue name"));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; TicketDataContent.Add(new KeyValuePair< string,string>(" Requestor"," name@email.com"));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; TicketDataContent.Add(new KeyValuePair< string,string>(" Owner"," owner@email.com)"));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; TicketDataContent.Add(new KeyValuePair< string,string>(" Subject"," Created by C#"));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; TicketDataContent.Add(new KeyValuePair< string,string>(" Text"," Ticket body with messages with this ticket"));



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var ticketContent = new MultipartFormDataContent();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; ticketContent.Add(new FormUrlEncodedContent(TicketDataContent)," content");

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var response = await client.PostAsync(baseURL + ticketsUri,ticketContent);



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Console.WriteLine(" Response StatusCode:" + response.StatusCode.ToString());



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var retContent = response.Content;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var retMsg = await response.Content.ReadAsStringAsync();



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Console.WriteLine(retMsg);

  &NBSP; } b $ b我收到了以下回复:



**回复状态代码:OK **



** RT / 4.4.2 200好**



**#必需:id,队列**



任何帮助表示赞赏。 谢谢!

Need to develop a C# application to create new RT tickets, but the example code for c# on https://rt-wiki.bestpractical.com/wiki/REST#C.23 is not working.

I have found information from different places but none of them really have example on how to create a new rt ticket by using C# HttpClient.

Here is my attempt:

    private static async void HTTP_Create()
    {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri(baseURL);

            string ticketUri = string.Format("REST/1.0/ticket/new?user={0}&pass={1}", testUser.UserName, testUser.Password);

            // Doesn't work
            var TicketDataContent = new List<KeyValuePair<string, string>>();
            TicketDataContent.Add(new KeyValuePair<string, string>("id", "ticket/new"));
            TicketDataContent.Add(new KeyValuePair<string, string>("Queue", "queue name"));
            TicketDataContent.Add(new KeyValuePair<string, string>("Requestor", "name@email.com"));
            TicketDataContent.Add(new KeyValuePair<string, string>("Owner", "owner@email.com)"));
            TicketDataContent.Add(new KeyValuePair<string, string>("Subject", "Created by C#"));
            TicketDataContent.Add(new KeyValuePair<string, string>("Text", "Ticket body with messages related to this ticket"));

            var ticketContent = new MultipartFormDataContent();
            ticketContent.Add(new FormUrlEncodedContent(TicketDataContent), "content");
            var response = await client.PostAsync(baseURL + ticketUri, ticketContent);

            Console.WriteLine("Response StatusCode: " + response.StatusCode.ToString());

            var retContent = response.Content;
            var retMsg = await response.Content.ReadAsStringAsync();

            Console.WriteLine(retMsg);
    }
I got the following response:

**Response StatusCode: OK**

**RT/4.4.2 200 Ok**

**# Required: id, Queue**

Any help is appreciated.  Thanks!

推荐答案

Hi Liddie,

Hi Liddie,

感谢您在此发帖。

对于您的问题,您的项目类型是什么?

For your question, what is the type of your project?

您提供的链接使用"WCF REST入门套件"。如果您的问题与WCF有关,我会将其移至 Windows Communication基础,
序列化和网络论坛
以获得适当的支持。

The link you provided use "WCF REST Starter Kit". If your question is related to WCF, I will move it to Windows Communication Foundation, Serialization, and Networking forum for suitable support.

如果您使用自己的API,您可以在RT社区论坛中发布您的问题。

If you use it own API, you could post your question in RT community forum.

https://forum.bestpractical.com/

最诚挚的问候,

Wendy


这篇关于如何使用System.Net.Http.HttpClient创建新的RT(请求跟踪器票证)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆