Domanda

Attualmente sto lavorando con un'API che richiede di inviare i dettagli della nostra raccolta in xml al loro server utilizzando una richiesta di post.

Niente di grave lì, ma non funziona, quindi voglio inviare l'XML inviato a un file txt in modo da poter vedere cosa è stato inviato !!

Invece di pubblicare sull'API, sto inviando un documento chiamato target, ma l'xml che sta emettendo la sua registrazione sembra essere davvero sbagliato. Ecco il mio script di destinazione, nota che lo script di pubblicazione contiene 3 elementi, quindi il file in fase di scrittura dovrebbe avere i dettagli di ogni richiesta di post uno dopo l'altro.

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

// get the request data...
$payload = '';
$fp = fopen('php://input','r');
$output_file = fopen('output.txt', 'w');
while (!feof($fp)) {
    $payload .= fgets($fp);
    fwrite($output_file, $payload);
}

fclose($fp);
fclose($output_file);
?> 

Ho anche provato quanto segue, ma questo ha appena registrato l'ultima richiesta di post, quindi nel file txt è stato registrato solo 1 elemento di raccolta, anziché tutti e 3

output_file = fopen('output.txt', 'w');
while (!feof($fp)) {
    $payload .= fgets($fp);
}
fwrite($output_file, $payload);
fclose($fp);
fclose($output_file);

So che mi manca qualcosa di veramente ovvio, ma lo sto guardando tutta la mattina!

È stato utile?

Soluzione

Cambia

$output_file = fopen('output.txt', 'w');

a

$output_file = fopen('output.txt', 'a');

Inoltre, cambia

$payload .= fgets($fp);

a

$payload = fgets($fp);

Altri suggerimenti

probabilmente dovresti usare curl invece di recuperare il contenuto e poi scriverlo tramite fwrite

cambia

  $payload .= fgets($fp);

a

 $payload = fgets($fp);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top