Webservices (soap,rest,...) - Bad Request al tratar de envíar un XML

 
Vista:
sin imagen de perfil

Bad Request al tratar de envíar un XML

Publicado por Mathias (1 intervención) el 07/01/2015 15:38:24
Hola, estoy tratando de enviar un archivo XML a un webserver por HTML y php pero no me esta saliendo, al consultar en la respuesta, me aparece el mensaje:

"Bad Request - Invalid Hostname

HTTP Error 400. The request hostname is invalid."

El código que hice para comunicarme es este,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<html>
<head>
<title>Prueba</title>
</head>
<body>
 
	<?php
 
		$xml = $_FILES['filetoupload'];
		$filepath = $xml['tmp_name'];
		$filename = $xml['name'];
 
		echo "<br>Archivo temporal: ".$filename."<br>Guardado en: ".$filepath."<br><br>";
 
		//Iniciamos una sesion cURL
		$curl = curl_init();
 
		//Indicamos a donde deseamos enviar nuestro post
		curl_setopt($curl, CURLOPT_URL,"http://www.host.com" );
 
		//Indicamos lo que queremos enviar en nuestro post, en este caso un xml
		curl_setopt($curl , CURLOPT_POSTFIELDS,$xml);
 
		curl_setopt($curl, CURLOPT_HTTPHEADER,
					array('Content-Type: application/x-www-form-urlencoded',
							'Content-Length: strlen($xml)',
							'Host: http://www.host.com));

		//Añadimos una opción más para poder almacenar la respuesta en una variable
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

		//Ejecutamos el curl y almacenamos la respuesta en una variable
		$respuesta=curl_exec($curl);

		print_r($respuesta);

		if(curl_errno($curl))
		{
			print '<br>ERROR: '.curl_error($curl);
		}
		else
		{
			//Cerramos nuesta sesión
			curl_close($curl);	
		}

	?>

</body>
</html>
esto es en el archivo upload.php

El archivo se sube en index.php:

1
2
3
4
5
6
7
<form 		method="post"
			enctype="multipart/form-data"
			'action="upload.php"'
>
    <input type="file" name="filetoupload">
    <input type="submit" value="Envia!">
</form>




Al agregar este código, aparece el siguiente mensaje:

1
2
3
4
5
6
7
8
9
if(curl_errno($curl))
		{
			print '<br>ERROR: '.curl_error($curl);
		}
		else
		{
			//Cerramos nuesta sesión
			curl_close($curl);
		}


¿Qué puede estar mal o estar faltándose?

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder