Hi Everyone!,
I’m stuck here. I have this code that is in dart.
import 'dart:convert';
import 'package:dio/dio.dart';
main() async {
const jiraApiUrl = 'https://proyectosgmb.atlassian.net/rest/api/2/issue';
const projectKey = 'ACR';
const userJira = 'lbowen@robotilsa.com';
const tokenJira = 'ATATT...9A';
Map<String, dynamic> requestData = {
'fields': {
'project': {'key': projectKey},
'summary': 'HOLA',
'description': "description",
'issuetype': {'name': 'Task'}
}
};
String requestBody = jsonEncode(requestData);
try {
final response = await Dio().post(
jiraApiUrl,
data: requestBody,
options: Options(
method: 'POST',
headers: <String, String>{
'X-Atlassian-Token': 'no-check',
'Content-Type': 'application/json',
'Accept': 'application/json',
'Access-Control-Allow-Methods': 'OPTIONS, GET, PUT, DELETE',
'Access-Control-Allow-Credentials': 'true',
'Access-Control-Expose-Headers': 'Origin, Authorization, Content-Type',
'Authorization':
'Basic ${base64Encode(utf8.encode('$userJira:$tokenJira'))}',
}
)
);
if (response.statusCode != 201) {
print("GOOD");
}
return response.statusCode == 201;
} catch (e) {
print("ERROR JIRA: $e");
return false;
}
}
It returns : DioException [connection error]: The connection errored: The XMLHttpRequest onError callback was called. This typically indicates an error on the network layer.
However, if i used the same code in python or if i use postman it works:
import requests
import json
from requests.auth import HTTPBasicAuth
def create_jira_task(titulo, description):
jira_api_url = 'https://proyectosgmb.atlassian.net/rest/api/2/issue'
project_key = 'ACR'
user_jira = 'lbowen@robotilsa.com'
token_jira = 'ATATT...9A'
request_data = {
'fields': {
'project': {'key': project_key},
'summary': titulo,
'description': description,
'issuetype': {'name': 'Task'}
}
}
request_body = json.dumps(request_data)
headers = {
'Content-Type': 'application/json',
'Authorization': f'Basic {user_jira}:{token_jira}'
}
try:
# Realizar la solicitud POST a la API de Jira
response = requests.post(
jira_api_url,
headers=headers,
data=request_body.encode('utf-8'),
auth=HTTPBasicAuth(user_jira, token_jira)
)
print("Status Code:", response.status_code)
print("Body response", response.content)
if response.status_code != 201:
print("Error al crear la tarea en Jira")
return False
return True
except Exception as e:
print("Error Jira:", e)
return False
titulo = "Título de la tarea"
descripcion = "Descripción de la tarea"
create_jira_task(titulo, descripcion)