Envío de mensaje a través de WhatsApp

112

Desde que encontré algunas publicaciones más antiguas, que dicen que whatsapp no ​​es compatible con esto, me preguntaba si algo había cambiado y si hay una manera de abrir un 'chat' de whatsapp con un número que estoy enviando a través de una intención.

Diego
fuente
¿Intentaste compartir acciones de proveedor?
Basim Sherif
Suena interesante, pero ¿cómo funcionaría? ¿Puedo compartir una cadena (número de teléfono) y abrirá whatsapp (o el selector?) ¿Puedes dar un pequeño ejemplo?
Diego
2
aunque hay una intención ACTION_SENDTO en whatsapp, no se ejecuta (correctamente) por lo que no es posible hacerlo con un número de teléfono específico [eso es lo que encontré]
Manan Sharma
2
Posible duplicado de Enviar texto a un contacto específico (whatsapp)
Rishabh Maurya
Todavía estoy ansioso por adjuntar imágenes y texto al mismo tiempo, pero no encontré suerte, suspiro :(
gumuruh

Respuestas:

180

ACTUALIZACIÓN Consulte https://faq.whatsapp.com/en/android/26000030/?category=5245251

La función Click to Chat de WhatsApp le permite comenzar un chat con alguien sin tener su número de teléfono guardado en la libreta de direcciones de su teléfono. Siempre que conozca el número de teléfono de esta persona, puede crear un enlace que le permitirá iniciar un chat con ella.

Uso: https://wa.me/15551234567

No use: https://wa.me/+001-(555)1234567

Ejemplo: https://wa.me/15551234567?text=I 'm% 20interested% 20in% 20your% 20car% 20for% 20sale

Respuesta original Aquí está la solución

public void onClickWhatsApp(View view) {

    PackageManager pm=getPackageManager();
    try {

        Intent waIntent = new Intent(Intent.ACTION_SEND);
        waIntent.setType("text/plain");
        String text = "YOUR TEXT HERE";

        PackageInfo info=pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA);
        //Check if package exists or not. If not then code 
        //in catch block will be called
        waIntent.setPackage("com.whatsapp");

        waIntent.putExtra(Intent.EXTRA_TEXT, text);
        startActivity(Intent.createChooser(waIntent, "Share with"));

   } catch (NameNotFoundException e) {
        Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
                .show();
   }  

}

Consulte también http://www.whatsapp.com/faq/en/android/28000012

Manan Sharma
fuente
¿Cómo integrarme con la mensajería? para que el usuario pueda elegir whatsapp o mensajería
Srikanth Pai
33
Si ya tenemos la información de contacto, ¿es posible agregar la información de contacto y enviar un mensaje sin tener que tocar el contacto para seleccionar y hacer clic en Aceptar para enviar?
user1492955
4
La fuente de @MananMerevikSharma no miente ( android.googlesource.com/platform/frameworks/base/+/refs/heads/… ). Además, el principio básico de Java: un objeto vive hasta que ya no hay referencias a él.
JRomero
1
@MananMerevikSharma -1. No "se convierte en un puntero nulo". La otra parte nunca se puede alcanzar. Cuando WhatsApp no ​​está instalado, el Intent aún se envía, pero se abre un cuadro de diálogo que dice que no hay una aplicación que coincida. Esto significa que no proporciona ninguna forma de comprobar si WhatsApp está instalado o no.
0101100101
64

Con este código puedes abrir el chat de whatsapp con el número dado.

void openWhatsappContact(String number) {
    Uri uri = Uri.parse("smsto:" + number);
    Intent i = new Intent(Intent.ACTION_SENDTO, uri);
    i.setPackage("com.whatsapp");  
    startActivity(Intent.createChooser(i, ""));
}
usuario2957782
fuente
3
@ user2957782 seguí a este señor, pero cuando hago clic en mi botón para iniciar mi whatsapp, dice "Ninguna aplicación puede realizar esta acción"
arjun narahari
@VihaanVerma, ¿puedes compartir cómo conseguiste que esto funcionara? Implementé el mismo código contra la versión 2.11.56021 de whatsapp y no obtengo nada ...
Alamgir Mand
1
Marcado, me envía a todas las listas de chat, no a la ventana de chat de un número específico.
Darpan
8
Funciona solo cuando tiene ese número en su lista de chat o lista de contactos.
Anshul Tyagi
1
en lugar de startActivity(Intent.createChooser(i, ""));utilizarlo startActivity(i);para abrir directamente el chat numérico proporcionado. 1. Probado en Samsung J7 prime, está funcionando. 2. El número no estaba en mi lista de contactos ni en mi lista de chat. 3. si el número no está usando whatsapp, aparecerá un cuadro de diálogo preguntándome si me gustaría invitar a ese contacto en whatsapp. Creo que es la mejor solución si desea proporcionar soporte de contacto de WhatsApp para los usuarios de su aplicación.
Muhammad Saqib
25

Encontré la siguiente solución, primero necesitarás la identificación de whatsapp:

Coincidiendo con informes de algunos otros hilos aquí y en otros foros, el nombre de inicio de sesión que encontré fue una especie de: código de área internacional sin los 0 o + al principio + número de teléfono sin el primer 0 + @ s.whatsapp.net

Por ejemplo, si vive en los Países Bajos y tiene el número de teléfono 0612325032, sería [email protected] -> +31 para los Países Bajos sin 0 o + y el número de teléfono sin 0.

public void sendWhatsAppMessageTo(String whatsappid) {

Cursor c = getSherlockActivity().getContentResolver().query(ContactsContract.Data.CONTENT_URI,
        new String[] { ContactsContract.Contacts.Data._ID }, ContactsContract.Data.DATA1 + "=?",
        new String[] { whatsappid }, null);
c.moveToFirst();

Intent whatsapp = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/" + c.getString(0)));
c.close();

 if (whatsapp != null) {

startActivity(whatsapp);      

} else {
        Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
                .show();
//download for example after dialog
                Uri uri = Uri.parse("market://details?id=com.whatsapp");
                Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
    }

}
Diego
fuente
Estoy probando este código pero me dice que getSherlockActivity () no está definido. Cómo arreglar esto ??
Eman87
2
@ Eman87 Diego está usando Action Bar Sherlock, así que el método. Obtenga el alcance de su actividad en lugar de getSherlockActivity ().
Manan Sharma
4
No tiene sentido if (whatsapp != null)como 2 líneas arriba de usted Intent whatsapp = new Intent(...).
Carcamano
2
Esta es una buena opción para abrir la ventana de chat directamente si la persona existe en Contactos. ¿Hay alguna forma de hacer lo mismo para el nuevo número que no existe en nuestros contactos?
MohammedYakub Moriswala
1
Necesita agregar <uses-permission android:name="android.permission.READ_CONTACTS" />permiso enAndroidManifest.xml
Pratik Butani
16

Esto debería funcionar tanto si Whatsapp está instalado como si no.

boolean isWhatsappInstalled = whatsappInstalledOrNot("com.whatsapp");
if (isWhatsappInstalled) {
    Uri uri = Uri.parse("smsto:" + "98*********7")
    Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "Hai Good Morning");
    sendIntent.setPackage("com.whatsapp");
    startActivity(sendIntent);
} else {
    Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT).show();
    Uri uri = Uri.parse("market://details?id=com.whatsapp");
    Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(goToMarket);

}

private boolean whatsappInstalledOrNot(String uri) {
    PackageManager pm = getPackageManager();
    boolean app_installed = false;
    try {
        pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
        app_installed = true;
    } catch (PackageManager.NameNotFoundException e) {
        app_installed = false;
    }
    return app_installed;
}
Satheesh
fuente
11
Excepción de
2
No se encontró actividad para manejar Intent {act = android.intent.action.SENDTO typ = text / plain pkg = com.whatsapp (tiene extras)}
Rajesh
2
Necesita eliminar esta línea para trabajar con usted sendIntent.setType ("text / plain");
MSaudi
2
la eliminación de sendIntent.setType ("text / plain") se encarga de la excepción de Actividad no encontrada que no se lanza, pero ahora el texto no se agrega como mensaje
Rik van Velzen
parece que ya no es posible, la actividad que recibe la intención tiene alguna referencia a "sms_body" pero no puedo hacer que funcione
sherpya
15

Solución simple, prueba esto.

String phoneNumberWithCountryCode = "+62820000000";
String message = "Hallo";

startActivity(
    new Intent(Intent.ACTION_VIEW,
        Uri.parse(
            String.format("https://api.whatsapp.com/send?phone=%s&text=%s", phoneNumberWithCountryCode, message)
        )
    )
);
Latief Anwar
fuente
10

¡Probado en Marshmallow S5 y funciona!

    Uri uri = Uri.parse("smsto:" + "phone number with country code");
    Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
    sendIntent.setPackage("com.whatsapp");
    startActivity(sendIntent); 

Esto abrirá un chat directo con una persona, si whatsapp no ​​está instalado, esto arrojará una excepción , si el número de teléfono no es conocido por whatsapp, ofrecerán enviar invitaciones a través de sms o mensaje simple sms.

Ilya Gazman
fuente
¿qué pasa con el 'botón enviar'? ¿Podemos hacerlo programáticamente también ...?
gumuruh
3

La aplicación Google Now utiliza el siguiente código y NO funcionará para ninguna otra aplicación.

Estoy escribiendo esta publicación porque me enoja que WhatsApp no ​​permita que ningún otro desarrollador envíe mensajes directamente, excepto Google.

Y quiero que otros desarrolladores independientes sepan que este tipo de cooperación está ocurriendo, mientras Google sigue hablando de "abierto para todos" y WhatsApp dice que no quieren proporcionar ningún acceso a los desarrolladores.

Recientemente, WhatsApp ha agregado un Intent especialmente para Google Now, que debería tener el siguiente aspecto:

Intent intent = new Intent("com.google.android.voicesearch.SEND_MESSAGE_TO_CONTACTS");
intent.setPackage("com.whatsapp");
intent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.VoiceMessagingActivity"));

intent.putExtra("com.google.android.voicesearch.extra.RECIPIENT_CONTACT_CHAT_ID", number);
intent.putExtra("android.intent.extra.TEXT", text);
intent.putExtra("search_action_token", ?????);

También pude descubrir que "search_action_token" es un PendingIntent que contiene un IBinder-Object, que se envía de vuelta a Google App y se verifica, si fue creado por Google Now.

De lo contrario, WhatsApp no ​​aceptará el mensaje.

halcón negro
fuente
¡Interesante! pero ¿puede explicar más sobre "search_action_token" cómo podemos obtenerlo e implementarlo?
Bilal Mustafa
APK com.google.android.googlequicksearchbox Clase com.google.android.search.verification.api.SearchActionVerificationService Método createGoogleVerificationIntent
black-hawk
3

Actualmente, la única API oficial a la que puede realizar una GETsolicitud:

https://api.whatsapp.com/send?phone=919773207706&text=Hello

De todos modos, hay un programa API secreto que ya está siendo ejecutado por WhatsApp.

Zameer
fuente
1
Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden dejar de ser válidas si cambia la página enlazada. - De la crítica
Kumar Saurabh
1
@KumarSaurabh Esto no es un enlace, es una solicitud GET
Zameer
3

use este código de línea única para enviar mensajes a través de WhatsApp

//NOTE : please use with country code first 2digits without plus signed
try {
      String mobile = "911234567890";
      String msg = "Its Working";
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://api.whatsapp.com/send?phone=" + mobile + "&text=" + msg)));
      }catch (Exception e){
        //whatsapp app not install
     }
milán pithadia
fuente
2

Esto me funciona:

PackageManager pm = context.getPackageManager();
try {
    pm.getPackageInfo("com.whatsapp", PackageManager.GET_ACTIVITIES);
    Intent intent = new Intent();
            intent.setComponent(new ComponentName(packageName,
                    ri.activityInfo.name));
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, element);

} catch (NameNotFoundException e) {
    ToastHelper.MakeShortText("Whatsapp have not been installed.");
}
Cabezas
fuente
2

Esto es lo que funcionó para mí:

        Uri uri = Uri.parse("https://api.whatsapp.com/send?phone=" + "<number>" + "&text=" + "Hello WhatsApp!!");
        Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(sendIntent);
maximus
fuente
2

Usar URL directa de whatsapp

String url = "https://api.whatsapp.com/send?phone="+number;
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
Pierre Alexandre
fuente
1

esto es un trabajo mucho más largo pero hosco. disfruta tu código :)

 //method used to show IMs
private void show_custom_chooser(String value) {
    List<ResolveInfo> list = null;
    final Intent email = new Intent(Intent.ACTION_SEND);
    email.setData(Uri.parse("sms:"));
    email.putExtra(Intent.EXTRA_TEXT, "" + value);
    email.setType("text/plain"); // vnd.android-dir/mms-sms

    WindowManager.LayoutParams WMLP = dialogCustomChooser.getWindow()
            .getAttributes();
    WMLP.gravity = Gravity.CENTER;
    dialogCustomChooser.getWindow().setAttributes(WMLP);
    dialogCustomChooser.getWindow().setBackgroundDrawable(
            new ColorDrawable(android.graphics.Color.TRANSPARENT));
    dialogCustomChooser.setCanceledOnTouchOutside(true);
    dialogCustomChooser.setContentView(R.layout.about_dialog);
    dialogCustomChooser.setCancelable(true);
    ListView lvOfIms = (ListView) dialogCustomChooser
            .findViewById(R.id.listView1);
    PackageManager pm = getPackageManager();
    List<ResolveInfo> launchables = pm.queryIntentActivities(email, 0);
    // ////////////new
    list = new ArrayList<ResolveInfo>();
    for (int i = 0; i < launchables.size(); i++) {
        String string = launchables.get(i).toString();
        Log.d("heh", string);
//check only messangers
        if (string.contains("whatsapp")) {
            list.add(launchables.get(i));
        }
    }
    Collections.sort(list, new ResolveInfo.DisplayNameComparator(pm));
    int size = launchables.size();
    adapter = new AppAdapter(pm, list, MainActivity.this);
    lvOfIms.setAdapter(adapter);
    lvOfIms.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            ResolveInfo launchable = adapter.getItem(position);
            ActivityInfo activity = launchable.activityInfo;
            ComponentName name = new ComponentName(
                    activity.applicationInfo.packageName, activity.name);
            email.addCategory(Intent.CATEGORY_LAUNCHER);
            email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            email.setComponent(name);
            startActivity(email);
            dialogCustomChooser.dismiss();
        }
    });
    dialogCustomChooser.show();

}
John Smith
fuente
1

Llego muy tarde aquí pero creo que hoy en día tenemos soluciones más cortas y mejores para enviar mensajes a través de WhatsApp.

Puede usar lo siguiente para llamar al selector del sistema y luego elegir qué aplicación usará para compartir lo que quiera.

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);

Si realmente necesita enviar a través de WhatsApp, todo lo que necesita hacer es lo siguiente (omitirá el selector de sistema)

 Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.setType("text/plain");
    // Put this line here
    sendIntent.setPackage("com.whatsapp");
    //
    startActivity(sendIntent);

Si necesitas más información puedes encontrarla aquí: Preguntas frecuentes de WhatsApp

Será
fuente
1

Como dice la documentación , puede usar una URL como:

https://wa.me/15551234567

Donde el último segmento es el número en formato E164

Uri uri = Uri.parse("https://wa.me/15551234567");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
GVillani82
fuente
1
private fun sendWhatsappMessage(phoneNumber:String, text:String) {        
  val url = if (Intent().setPackage("com.whatsapp").resolveActivity(packageManager) != null) {
        "whatsapp://send?text=Hello&phone=$phoneNumber"
    } else {
        "https://api.whatsapp.com/send?phone=$phoneNumber&text=$text"
    }

    val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
    startActivity(browserIntent)
}

Esta es una forma mucho más sencilla de lograrlo. Este código verifica si WhatsApp está instalado en el dispositivo. Si está instalado, omite el selector del sistema y va al contacto en Whatsapp y preselecciona el texto en el chat. Si no está instalado, abre el enlace de WhatsApp en su navegador web.

Adekola Akano
fuente
1

Querrá usar una URL en el siguiente formato ...

https://api.whatsapp.com/send?text=text

Entonces puede hacer que envíe el texto que desee. También tiene la opción de especificar un número de teléfono ...

https://api.whatsapp.com/send?text=text&phone=1234

Lo que NO PUEDE HACER es usar lo siguiente:

https://wa.me/send?text=text

Conseguirás...

No pudimos encontrar la página que buscaba

wa.me, sin embargo, funcionará si proporciona tanto un número de teléfono como un mensaje de texto. Pero, en su mayor parte, si está intentando crear un enlace para compartir, realmente no desea indicar el número de teléfono, porque desea que el usuario seleccione a alguien. En ese caso, si no proporciona el número y lo usa wa.mecomo URL, todos los enlaces para compartir fallarán. Utilice app.whatsapp.com.

HoldOffHunger
fuente
0

Verifique este código,

    public void share(String subject,String text) {
     final Intent intent = new Intent(Intent.ACTION_SEND);

String score=1000;
     intent.setType("text/plain");
     intent.putExtra(Intent.EXTRA_SUBJECT, score);
     intent.putExtra(Intent.EXTRA_TEXT, text);

     startActivity(Intent.createChooser(intent, getString(R.string.share)));
}
Basim Sherif
fuente
0

Esto me funciona:

public static void shareWhatsApp(Activity appActivity, String texto) {

    Intent sendIntent = new Intent(Intent.ACTION_SEND);     
    sendIntent.setType("text/plain");
    sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, texto);

    PackageManager pm = appActivity.getApplicationContext().getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(sendIntent, 0);
    boolean temWhatsApp = false;
    for (final ResolveInfo info : matches) {
      if (info.activityInfo.packageName.startsWith("com.whatsapp"))  {
          final ComponentName name = new ComponentName(info.activityInfo.applicationInfo.packageName, info.activityInfo.name);
          sendIntent.addCategory(Intent.CATEGORY_LAUNCHER);
          sendIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK);
          sendIntent.setComponent(name);
          temWhatsApp = true;
          break;
      }
    }               

    if(temWhatsApp) {
        //abre whatsapp
        appActivity.startActivity(sendIntent);
    } else {
        //alerta - você deve ter o whatsapp instalado
        Toast.makeText(appActivity, appActivity.getString(R.string.share_whatsapp), Toast.LENGTH_SHORT).show();
    }
}
user3124158
fuente
0

obtenga el número de contacto a quien desea enviar el mensaje y cree uri para whatsapp, aquí c es un Cursor que devuelve el contacto seleccionado.

Uri.parse("content://com.android.contacts/data/" + c.getString(0)));
i.setType("text/plain");
i.setPackage("com.whatsapp");           // so that only Whatsapp reacts and not the chooser
i.putExtra(Intent.EXTRA_SUBJECT, "Subject");
i.putExtra(Intent.EXTRA_TEXT, "I'm the body.");
startActivity(i);
Kiran Maniya
fuente
0

De la documentación

Para crear su propio enlace con un mensaje precargado que aparecerá automáticamente en el campo de texto de un chat, use https://wa.me/whatsappphonenumber/?text=urlencodedtext donde whatsappphonenumber es un número de teléfono completo en formato internacional y URL -encodedtext es el mensaje precargado con codificación URL.

Ejemplo: https://wa.me/15551234567?text=I 'm% 20interested% 20in% 20your% 20car% 20for% 20sale

Ejemplo de código

val phoneNumber = "13492838472"
    val text = "Hey, you know... I love StackOverflow :)"
    val uri = Uri.parse("https://wa.me/$phoneNumber/?text=$text")
    val sendIntent = Intent(Intent.ACTION_VIEW, uri)
    startActivity(sendIntent)
Gastón Saillén
fuente
-1

La siguiente API se puede utilizar en c ++ como se muestra en mi artículo .

Necesita definir varias constantes:

//
#define    GroupAdmin                <YOUR GROUP ADMIN MOBILE PHONE>
#define GroupName                <YOUR GROUP NAME>
#define CLIENT_ID                <YOUR CLIENT ID>
#define CLIENT_SECRET            <YOUR CLIENT SECRET>

#define GROUP_API_SERVER        L"api.whatsmate.net"
#define GROUP_API_PATH          L"/v3/whatsapp/group/text/message/12"
#define IMAGE_SINGLE_API_URL    L"http://api.whatsmate.net/v3/whatsapp/group/image/message/12"

//

Luego te conectas al punto final de la API.

hOpenHandle = InternetOpen(_T("HTTP"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (hOpenHandle == NULL)
{
    return false;
}

hConnectHandle = InternetConnect(hOpenHandle,
    GROUP_API_SERVER,
    INTERNET_DEFAULT_HTTP_PORT,
    NULL, NULL, INTERNET_SERVICE_HTTP,
    0, 1);

if (hConnectHandle == NULL)
{
    InternetCloseHandle(hOpenHandle);
    return false;
}

Luego envíe el encabezado y el cuerpo y espere el resultado que debe ser "OK".

Paso 1: abra una solicitud HTTP:

const wchar_t *AcceptTypes[] = { _T("application/json"),NULL };
HINTERNET hRequest = HttpOpenRequest(hConnectHandle, _T("POST"), GROUP_API_PATH, NULL, NULL, AcceptTypes, 0, 0);

if (hRequest == NULL)
{
    InternetCloseHandle(hConnectHandle);
    InternetCloseHandle(hOpenHandle);
    return false;
}

Paso 2: envía el encabezado:

std::wstring HeaderData;

HeaderData += _T("X-WM-CLIENT-ID: ");
HeaderData += _T(CLIENT_ID);
HeaderData += _T("\r\nX-WM-CLIENT-SECRET: ");
HeaderData += _T(CLIENT_SECRET);
HeaderData += _T("\r\n");
HttpAddRequestHeaders(hRequest, HeaderData.c_str(), HeaderData.size(), NULL);

Paso 3 - envía el mensaje:

std::wstring WJsonData;
WJsonData += _T("{");
WJsonData += _T("\"group_admin\":\"");
WJsonData += groupAdmin;
WJsonData += _T("\",");
WJsonData += _T("\"group_name\":\"");
WJsonData += groupName;
WJsonData += _T("\",");
WJsonData += _T("\"message\":\"");
WJsonData += message;
WJsonData += _T("\"");
WJsonData += _T("}");

const std::string JsonData(WJsonData.begin(), WJsonData.end());

bResults = HttpSendRequest(hRequest, NULL, 0, (LPVOID)(JsonData.c_str()), JsonData.size());

Ahora solo verifique el resultado:

TCHAR StatusText[BUFFER_LENGTH] = { 0 };
DWORD StatusTextLen = BUFFER_LENGTH;
HttpQueryInfo(hRequest, HTTP_QUERY_STATUS_TEXT, &StatusText, &StatusTextLen, NULL);
bResults = (StatusTextLen && wcscmp(StatusText, L"OK")==FALSE);
Michael Haephrati
fuente