Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# XMLHttpRequest : error "0x80004005 (NS_ERROR_FAILURE)"

Envoyé par : wario

Date : 22/03/2005 12:18

Bonjour à tous,

J'essaye de créer un composant XpCom pour Thunderbird (en C++), utilisant le composant XMLHttpRequest. Voici le source du composant :

#include <nsCOMPtr.h>
#include <nsString.h>
#include <nsIURI.h>
#include <nsIChannel.h>
#include <nsIXMLHttpRequest.h>
#include <nsNetUtil.h>
#include "nsIDocument.h"
#include "nsIServiceManager.h"
#include "nsContentCID.h"
#include "nsReadableUtils.h"
#include <nspr.h>
#include "nsIVariant.h"
/* void test (); */
NS_IMETHODIMP nsTest::Test()
{
nsresult rv;

PR_fprintf(PR_STDOUT, "CREATION DE L'INSTANCE\n");
nsCOMPtr<nsIXMLHttpRequest> pXMLHttpRequest = do_CreateInstance( NS_XMLHTTPREQUEST_CONTRACTID, &rv );
const char* url = "http://www.monsite.com/test.cgi";
const char* data = "val1=a&val2=b";
   if (NS_FAILED( rv )) {
   	return rv;
   }
   const nsAString& emptyStr = EmptyString();
   PR_fprintf(PR_STDOUT, "OUVERTURE DE LA REQUETE\n");
   rv = pXMLHttpRequest->OpenRequest( NS_LITERAL_CSTRING("POST"),
                                      nsDependentCString(url),
                                      PR_FALSE, emptyStr, emptyStr );
   if (NS_FAILED( rv )) {
   	return rv;
   }
   
   rv = pXMLHttpRequest->SetRequestHeader(NS_LITERAL_CSTRING("Content-Type"),
                                NS_LITERAL_CSTRING("application/x-www-form-urlencoded"));
                                
   if (NS_FAILED( rv )) {
       return rv;
   }
   
nsCOMPtr < nsIWritableVariant > variant = do_CreateInstance(NS_VARIANT_CONTRACTID, &rv);
 	if (NS_FAILED(rv))
   	return rv;
 	rv = variant->SetAsACString(nsDependentCString(data));
 	if (NS_FAILED(rv))
   	return rv;
  
   PR_fprintf(PR_STDOUT, "ENVOI DE LA REQUETE\n");
   rv = pXMLHttpRequest->Send( variant );
   if (NS_FAILED( rv )) {
       PR_fprintf(PR_STDOUT, "Probleme send %x\n", rv);
       return rv;
   }

   return NS_OK;
}

Le fichier compile correctement, mais quand je teste le composant en utilisant xpcsell, j'ai l'erreur suivante au niveau du send() : error "0x80004005 (NS_ERROR_FAILURE)"

Est ce que quelqu'un peut m'aider ?

Merci d'avance

# Re: XMLHttpRequest : error "0x80004005 (NS_ERROR_FAILURE)"

Envoyé par : wario

Date : 12/04/2005 09:33

Salut,

j'ai réussi à résoudre ce problème. En fait, j'utilisais un proxy pour me connecter sur le net, il fallait donc que je le configure dans mon code.

nsCOMPtr<nsIPrefBranchInternal> prefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID);
if(prefBranch){
   // preferences for the proxy 
   prefBranch->SetCharPref("network.proxy.http", "monproxy.server.fr");
   prefBranch->SetIntPref("network.proxy.http_port", 3128);
   prefBranch->SetIntPref("network.proxy.type", 1);
}

a+

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.