php rest curl jira

php - Actualizando un problema jira con el resto api. NO jabón



curl (2)

No estoy seguro, probemos algo:

cambio

CURLOPT_HTTPHEADER => array(''Content-type: application/json''),

a:

CURLOPT_HTTPHEADER => array( ''Accept: application/json'', ''Content-Type: application/json'' );

y:

$new_issue = array( ''update'' =>array( ''fields'' => array( ''project'' => array(''key'' => ''DOTNET''), ''summary'' => ''Test via REST'', ''description'' => ''Description of issue goes here.'', ''issuetype'' => array(''name'' => ''Task'') )) );

a:

$new_issue = array( ''fields'' => array( ''project'' => array(''key'' => ''DOTNET''), ''summary'' => ''Test via REST'', ''description'' => ''Description of issue goes here.'', ''issuetype'' => array(''name'' => ''Task'') ) );

por último, cambiar:

CURLOPT_URL => JIRA_URL . ''/rest/api/latest/'' . $resource,

a su dirección real, así como escribir 2 lugar de la latest , es decir:

CURLOPT_URL=>''http://localhost/rest/api/2/issue/'',

prueba esto y cuéntame cómo va, ¡buena suerte!

EDITAR

intente cambiar:

CURLOPT_POST => 1,

a:

CURL_POST=>true, CURLOPT_VERBOSE=>1,

por cierto, ¿dónde está tu servidor jira? ¿No dijiste que estaba alojado? localhost:8080 solo funcionará si Jira se instala localmente. Si es así, intente abrirlo usando un navegador http://localhost:8084/rest/api/2/issue/

EDIT 2

Asegúrese de que la Allow Remote API Calls esté activada en Administración> Configuración general.

para actualizar un problema:

la URL debe señalar el problema que se actualizará próximamente, es decir:

http://localhost/rest/api/2/issue/TEST-31

y los datos deberían ser los mismos que antes, lo que significa:

$new_issue = array( ''fields'' => array( ''project'' => array(''key'' => ''DOTNET''), ''summary'' => ''Test via REST'', ''description'' => ''Description of issue goes here.'', ''issuetype'' => array(''name'' => ''Task'') ) );

tal como lo escribió cuando intentó crear un problema. puedes encontrar aquí un ejemplo simple de cómo hacerlo.

EDIT 3

¿Estás seguro de que tienes la dirección Jira correcta? intente de nuevo abrir un navegador y vaya a la URL y compárela con este ejemplo . Si la página no se muestra, deberá ponerse en contacto con el soporte de Jira y preguntarles cómo es que no puede acceder a la API remota de Jira alojada.

mi función php para actualizar el problema de jira es así. He codificado el id.it id. genera un error en if (property_exists($result, ''errors'')) . decir el parámetro no es un objeto.

function post_to($resource, $data) { $jdata = json_encode($data); $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_POST => 1, CURLOPT_URL => JIRA_URL . ''/rest/api/latest/'' . $resource, CURLOPT_USERPWD => USERNAME . '':'' . PASSWORD, CURLOPT_POSTFIELDS => $jdata, CURLOPT_HTTPHEADER => array(''Content-type: application/json''), CURLOPT_RETURNTRANSFER => true )); $result = curl_exec($ch); curl_close($ch); return json_decode($result); } function create_issue($issue) { return post_to(''issue/10224/editmeta'', $issue); } $new_issue = array( ''update'' =>array( ''fields'' => array( ''project'' => array(''key'' => ''DOTNET''), ''summary'' => ''Test via REST'', ''description'' => ''Description of issue goes here.'', ''issuetype'' => array(''name'' => ''Task'') )) ); $result = create_issue($new_issue); if (property_exists($result, ''errors'')) { echo "Error(s) creating issue:/n"; var_dump($result); } }

¿Qué estoy haciendo mal aquí? por favor conteste.