2016-02-07 1 views
0

Je suis en train de créer problème en utilisant l'API de repos JIRA par le code suivantCréer problème en utilisant l'API de repos JIRA retourner la méthode d'erreur non permis

string data = @"{ ""fields"": { 
          ""project"": 
       { 
        ""key"": ""TEST"" 
       }, 
          ""summary"": ""Test Ticket"", 
          ""description"": ""Creating of an issue using project keys and issue type names using the REST API"", 
          ""issuetype"": { 
           ""name"": ""Bug"" 
          }, 
          ""assignee"": { ""xx"": ""xxx"" } 
         } 
     }"; 
     string postUrl = "http://localhost:8080/rest/api/latest/issue/"; 
     System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(); 
     client.BaseAddress = new System.Uri(postUrl); 
     byte[] cred = UTF8Encoding.UTF8.GetBytes("xx:xx"); 
     client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(cred)); 
     client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 

     System.Net.Http.Formatting.MediaTypeFormatter jsonFormatter = new System.Net.Http.Formatting.JsonMediaTypeFormatter(); 

     var content = new StringContent(data, Encoding.UTF8, "application/json"); 
     //System.Net.Http.HttpContent content = new System.Net.Http.ObjectContent<Issue>(data, jsonFormatter); 
     System.Net.Http.HttpResponseMessage response = client.PostAsync("issue", content).Result; 

Je suis erreur inattendue: « Méthode non autorisée »

+1

Juste un commentaire concernant url: il y a 'issue' dans url et aussi dans l'appel PostAsync, avez-vous vérifié à quelle URL la demande va? – Robert

+0

problème encore ici –

+0

Je recommande d'utiliser Fiddler et vérifier l'URL de la demande et de la demande corps et enrichir votre question avec ces données – Robert

Répondre

0

Je seconde @Robert, le premier paramètre de PostAsync est appelé requestUri, donc votre postUrl vient ici. Ensuite, vous pouvez passer l'installation BaseAddress.

Comme vous avez un BaseAddress et un URI relatif comme requestUri, HttpClient très probablement les combine en http://localhost:8080/rest/api/latest/issue/issue et utilise cette URL dans la requête POST réelle, et cet objectif ne permet pas POST.

+0

après enlever baseAddress j'ai obtenu une erreur de demande Bad. –

+0

Avez-vous également modifié l'appel PostAsync? – Koshinae

+0

oui je mets l'url complète (localhost: 8080/rest/api/dernier/issue) dans PostAsync –