Foros del Web » Programando para Internet » PHP »

Hacer post a un api

Estas en el tema de Hacer post a un api en el foro de PHP en Foros del Web. Buenas foreros necesito enviar datos en formato Json a una url mediante post (debe de ser por post), para que esta me retorne cierta informacion. ...
  #1 (permalink)  
Antiguo 13/12/2011, 12:28
Avatar de bachem506  
Fecha de Ingreso: junio-2011
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Hacer post a un api

Buenas foreros

necesito enviar datos en formato Json a una url mediante post (debe de ser por post), para que esta me retorne cierta informacion.

Estoy tratando de hacer esto mediante el metodo
http_post_data('URL','{"datos en formato Json"}'.

sin embargo este mètodo no me funciona, no se si alguien conosca una forma mejor o me ayude con el mismo


Mmuchas Gracias

  #2 (permalink)  
Antiguo 13/12/2011, 13:09
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Hacer post a un api

podrías usar cURL
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 13/12/2011, 14:19
Avatar de bachem506  
Fecha de Ingreso: junio-2011
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Hacer post a un api

Mira lo estoy haciendo asi pero no se esta estableciendo la conexion


$sesion = curl_init($url);

curl_setopt ($sesion, CURLOPT_POST, true);

curl_setopt ($sesion, CURLOPT_POSTFIELDS, $data);

$respuesta = curl_exec($sesion);

curl_close($sesion);

print_r($respuesta);
  #4 (permalink)  
Antiguo 13/12/2011, 14:37
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 4 meses
Puntos: 105
Respuesta: Hacer post a un api

Coloca todo el codigo para ayudarte mejor ^^
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #5 (permalink)  
Antiguo 13/12/2011, 14:44
Avatar de bachem506  
Fecha de Ingreso: junio-2011
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Hacer post a un api

si le hago debug al codigo $respuesta aparece con valor false lo que quiere decir que no se establecio la conexion.
este codigo me tiene que dar la sigiuente respuesta(en formato JSON): {"responseMessage":"Success: Your request was successfully completed.","responseCode":2000}

$url='https://190.40.221.70:8443/ora/authenticationService/authentication/signIn';

$data='{"requestParameters":{"username":"apiuser", "password":"123"}}';

$sesion = curl_init($url);

curl_setopt ($sesion, CURLOPT_POST, true);

curl_setopt ($sesion, CURLOPT_POSTFIELDS, $data);

curl_setopt($sesion, CURLOPT_HEADER, false);
curl_setopt($sesion, CURLOPT_RETURNTRANSFER, true);

$respuesta = curl_exec($sesion);

curl_close($sesion);

print_r($respuesta);
  #6 (permalink)  
Antiguo 13/12/2011, 15:00
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 4 meses
Puntos: 105
Respuesta: Hacer post a un api

No puedes enviar texto por post.... es decir, debes enviar parametros.... para finalizar.... encierra todo ese texto en una variable y luego en el otro lado, lo codificas a json.

P.D. cuidado con las comillas, te recomendaria imprimir como te queda la variable $data... es decir testea eso que esta enviando.

suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 13/12/2011, 19:36
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 9 meses
Puntos: 89
Respuesta: Hacer post a un api

Les recomiendo este aporte
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: json, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:56.