Foros del Web » Programando para Internet » ASPX (.net) »

Problema con Web Services

Estas en el tema de Problema con Web Services en el foro de ASPX (.net) en Foros del Web. Estimados amigos les pido su ayuda les cuento tengo un web service en php, el cual entrega la cadena para crear una imagen PNG, el ...
  #1 (permalink)  
Antiguo 05/04/2010, 19:14
Avatar de enzoscuro  
Fecha de Ingreso: mayo-2004
Ubicación: hcda el carmen pan de azu
Mensajes: 51
Antigüedad: 19 años, 11 meses
Puntos: 0
Problema con Web Services

Estimados amigos les pido su ayuda les cuento

tengo un web service en php, el cual entrega la cadena para crear una imagen PNG, el texto lo entrega con encoding utf 8

[PHP]
$server->soap_defencoding = 'UTF-8';

y codificado con

[PHP]
base64_encode($texto);

El web service es consumido perfectamente con php

y expuesto mediante

[PHP]
header ("Content-type: image/png");
echo base64_decode($texto);

el problema sucede cuando consumo el web service con c#, la cadnae llega bien ya que le pedi al webservice que escribiera un archivo con el contenido en el servidor linux/php, debugie el cliente del web service en c#, y antes de decodificarlo en base64b tiene el mismo contenido que el archivo que escribio el en el servidor, el problema sucede al momento de decodificarlo en base64, estoy usando este codigo

[c#]

Byte[] bytes = Convert.FromBase64String(text);
Encoding enc = Encoding.UTF8;
enc.GetString(bytes);

Imprimo el resultado como imagen PNG y el navegador me dice que la imagen es incorrecta, reviso el texto de la imagen lo comparo con el texto que genera el cliente php y claro, el texto del cliente en c# posee muchos caracteres ?, help me please

un abrazo

Ebzo
__________________
El viento sopla en el oeste...
  #2 (permalink)  
Antiguo 06/04/2010, 09:36
Avatar de enzoscuro  
Fecha de Ingreso: mayo-2004
Ubicación: hcda el carmen pan de azu
Mensajes: 51
Antigüedad: 19 años, 11 meses
Puntos: 0
Solucionado: Problema con Web Services

Solucionado!!!

Código PHP:
    /**
     * Metodo que decodifica un string en base64 dirigido para una imagen del tipo PNG
     * @param string data, string codificado en base64
     * @return byte[], con el contenido texto de la imagen
     */ 
    
public static byte[] base64Decode(string data)
    {     
    
        
MemoryStream memory = new MemoryStream(Convert.FromBase64String(data));
        
System.Drawing.Image result System.Drawing.Image.FromStream(memory);        
        
memory.Close();
        
        
memory = new MemoryStream();
        
result.Save(memorySystem.Drawing.Imaging.ImageFormat.Png);

        
byte[] imageContent = new Byte[memory.Length];

        
// rewind the memory stream
        
memory.Position 0;

        
// load the byte array with the image
        
memory.Read(imageContent0, (int)memory.Length);

        return 
imageContent;
    } 
//------------------------------------------------------------------------------------------------
luego se imprime el byte[]
//------------------------------------------------------------------------------------------------
Código PHP:
      Response.Clear();
      
Response.ContentType "image/png";
      
// return byte array to caller with image type        
      
Response.BinaryWrite(this.getGraficoPNG(data));
       
Response.End(); 
__________________
El viento sopla en el oeste...
  #3 (permalink)  
Antiguo 24/02/2015, 13:40
 
Fecha de Ingreso: febrero-2015
Mensajes: 2
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema con Web Services

Hola amigo me podrias explicar como se crea y se consume un web services en c#
Tengo una aplicacion de escritorio la cual requiere traerse los campos de la base de datos de mysql sin que la aplicacion toque la base de datos, si no que se comunique con el web services por fa afradeceria tu ayuda

Etiquetas: encoding, service
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 18:10.