Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用HttpClient发布JSON数据_C#_Json_Httpclient_Azure Devops - Fatal编程技术网

C# 使用HttpClient发布JSON数据

C# 使用HttpClient发布JSON数据,c#,json,httpclient,azure-devops,C#,Json,Httpclient,Azure Devops,我正在尝试以编程方式在VisualStudioTeamServices(以前是VisualStudioOnline)中创建服务挂钩订阅。在团队服务中创建项目时,将自动创建服务挂钩。以下是我的“workitem created”web钩子代码: using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Add(

我正在尝试以编程方式在VisualStudioTeamServices(以前是VisualStudioOnline)中创建服务挂钩订阅。在团队服务中创建项目时,将自动创建服务挂钩。以下是我的“workitem created”web钩子代码:

using (HttpClient client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Add(
                        new MediaTypeWithQualityHeaderValue("application/json"));

                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                       Convert.ToBase64String(
                           System.Text.ASCIIEncoding.ASCII.GetBytes(
                               string.Format("{0}:{1}", username, password))));

                    var request = new 
                    {
                        publisherId = "tfs",
                        eventType= " workitem.created",
                        resourceVersion= "1.0",
                        consumerId= "webHooks",
                        consumerActionId= "httpRequest",
                        publisherInputs= new {      
                            projectId= "test123",
                        }, 
                        consumerInputs= new {
                            url = "https://mydomain/api/ServiceHook/SaveWorkItem"
                        }
                    };


                    var response = client.PostAsync("https://mydomain/DefaultCollection/_apis/hooks/subscriptions",
                        new StringContent(JsonConvert.SerializeObject(request).ToString(),
                            Encoding.UTF8, "application/json"))
                            .Result;

                    if (response.IsSuccessStatusCode)
                    {
                        dynamic content = JsonConvert.DeserializeObject(
                            response.Content.ReadAsStringAsync()
                            .Result);


                        // Access variables from the returned JSON object
                        var appHref = content.links.applications.href;
                    }
                }
运行此代码时,我遇到以下错误:
解析值时遇到意外字符:请尝试下面的代码-

var dataObjects = response1.Content.ReadAsStringAsync().Result;
var rootObj = JsonConvert.DeserializeObject<RootObject>(dataObjects);
var dataObjects=response1.Content.ReadAsStringAsync().Result;
var rootObj=JsonConvert.DeserializeObject(数据对象);

其中RootObject是响应对象。

发布stacktrace…在此处验证您的Json结构:您在哪一行收到错误?同样的问题:您在哪一行收到错误?我复制了你的代码并用它做了一个快速测试。可以成功创建webhook。唯一的问题是“var appHref=content.links.applications.href;”,因为“links.applications.href”在响应消息中不存在。很抱歉回复太晚。。我得到了错误@DeserializengRotoObject是您的响应类。这是基于响应json格式创建的。您可以使用此链接-。
var dataObjects = response1.Content.ReadAsStringAsync().Result;
var rootObj = JsonConvert.DeserializeObject<RootObject>(dataObjects);