отправка SMS с C # и ключом Huawei E8372

Я пробовал много всего, чтобы отправить SMS с моим Huawei E8372, но ничего не работает.
вот мой последний код:

var SMS = $"<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones><Phone>0033*********</Phone></Phones><Sca></Sca><Content>byserver</Content><Length>8</Length><Reserved>1</Reserved><Date>{date.ToString("yyyy-MM-dd HH:mm:ss")}</Date></request>";

//var SMS = $"<request><Index>-1</Index><Phones><Phone>003364*******</Phone></Phones><Sca></Sca><Content>by server</Content><Length>9</Length><Reserved>1</Reserved><Date>{date.ToString("yyyy-MM-dd HH:mm:ss")}</Date></request>";

var baseAddress = new Uri("http://192.168.8.1");
using (var handler = new HttpClientHandler { UseCookies = false })
{
    using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
    {
        var message = new HttpRequestMessage(HttpMethod.Post, "/api/sms/send-sms");
        //message.Content = new FormUrlEncodedContent(paramse);
        message.Content = new StringContent(SMS);
        message.Headers.Add("__RequestVerificationToken", token);
        message.Headers.Add("Accept", "*/*");
        message.Headers.Add("Accept-Encoding", "gzip, deflate");
        //message.Headers.Add("Accept-Language", "fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3");
        message.Headers.Add("Connection", "keep-alive");
        //message.Headers.TryAddWithoutValidation("Content-Length", SMS.Length.ToString());
        //message.Headers.TryAddWithoutValidation("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        message.Headers.Add("Cookie", sessionID);
        //message.Headers.Add("Host","192.168.12.116");
        //message.Headers.Add("Referer", "http://192.168.12.116:61640/Service1.svc/TryThis");
        message.Headers.Add("User-Agent", ".NET Framework Test Client");
        //message.Headers.Add("X-Requested-With", "XMLHttpRequest");
    }
}

У меня всегда 200 в ответном коде. Но я никогда не получаю сообщения. Я стараюсь много раз менять заголовок, много раз менять и тело. И я знаю, что модем работает, потому что я могу отправлять смс, когда использую интерфейс в моем браузере. И я отправляю запрос, как это делают эти интерфейсы. Но для моего приложения это не работает. Может быть, из-за безопасности, которую я не знаю, или что-то в этом роде. Но я заблокирован в течение 6 дней по этой проблеме, и я в полном отчаянии.
Если у кого-то из вас есть решение или подсказка, я буду очень благодарен.
Заранее спасибо.

P.S: Я знаю, что HttpClient в using неверно. Но это единственный запрос, который должно выполнить мое приложение.

РЕДАКТИРОВАТЬ: это запрос, который отправляет мой браузер (с этим, который работает):
заголовок:

 Host: 192.168.8.1  
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
 Accept: */*  
 Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3  
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.8.1/html/smsinbox.html?smssent  
 Content-Type: application/x-www-form-urlencoded; charset=UTF-8  
 __RequestVerificationToken: 1W7DEw3V5rnPxeg01xqF13kgaPRRtO2d  
 X-Requested-With: XMLHttpRequest  
 Content-Length: 234  
 Connection: keep-alive  
 Cookie: SessionID=1ALPnbTT+SRZMWfPCfVruPnbm0tC4xHWwiumuySJr9AjTaZYzVK4SGYjNmWOEg7lQDsID+RimQ7HIPa3ZRWipdEXIM9APIP8i+K5JUq2yUAhjpZQuCp+Hx+eCQW5tpm/ 

тело :

 <?xml version="1.0" encoding="UTF-8"?><request><Index>-1</Index><Phones><Phone>0033646******</Phone></Phones><Sca></Sca><Content>test browser</Content><Length>12</Length><Reserved>1</Reserved><Date>2018-12-21 07:13:04</Date></request>

Так что это действительно похоже на запрос из моего приложения.


person lebarillier    schedule 21.12.2018    source источник
comment
... не работают для моего приложения ... - эта информация бесполезна. В нем не говорится, что именно не сработало, т.е. получали ли вы где-либо сообщения об ошибках, пытались ли вы отладить проблему, чтобы убедиться, что она действительно работает по назначению.   -  person Jazb    schedule 21.12.2018
comment
это настоящая проблема, у меня нет сообщений об ошибках. все выглядит отлично работает. но модем не отправляет SMS. Я нашел вопрос об использовании этого модема с bash или python, но когда я пытаюсь сделать что-то подобное, это то же самое. Нет сообщений об ошибках и смс   -  person lebarillier    schedule 21.12.2018
comment
Вы говорите, что он работает в браузере вашего компьютера (действительно ли в телефоне есть веб-сервер, который может отправлять SMS? Вау), поэтому откройте его в браузере, откройте инструменты разработчика браузера (хром: клавиша f12), откройте вкладку сети и сделайте запрос из от начала до конца, включая любой логин. Используйте инструменты Deb в браузере, чтобы проанализировать, что было отправлено, заголовки, данные, файлы cookie и т. Д., И выяснить, где ваш код идет не так. Веб-сервер, вероятно, не заботится о браузере (пользовательском агенте) и т. Д., Но точно воссоздайте запрос, и он должен работать.   -  person Caius Jard    schedule 21.12.2018
comment
Это именно то, что я сделал (и это не телефон, это USB с сим-картой. Итак, просто модем, и обычно он используется с браузером) Я отредактирую свой пост с запросом браузера.   -  person lebarillier    schedule 21.12.2018
comment
Можно ли подключить среду разработки с помощью teamviewer или чего-то подобного? если да, пожалуйста, предоставьте мне подробности   -  person Derviş Kayımbaşıoğlu    schedule 01.01.2019
comment
@Simonare, прошу прощения, я не могу поделиться своей средой разработки.   -  person lebarillier    schedule 04.01.2019
comment
Ты нашел какое-нибудь решение, братан?   -  person DmitryBoyko    schedule 15.04.2020
comment
нет, я не закончил этот проект. Но теперь я думаю, что это из-за проблемы с oAuth2, я, наверное, не имел на это права, и модем отправил пустое сообщение 200 вместо 401 или 403. Но это всего лишь предположение,   -  person lebarillier    schedule 16.04.2020


Ответы (1)


Взято из сообщения SO Отправка SMS-сообщений через bash скрипт с использованием hilink Huawei E8372

похоже, что для каждой команды, которую вы хотите запустить, вам нужно сначала получить новый токен

Поскольку у меня нет Huawei E8372, я не могу это проверить, но вы сможете перевести выражения curl в ответ на сообщение, указанное выше, на C #.

Ответ на этот пост:

Ниже представлен новый токен, сохраненный как ADM_TOKEN.

curl -s -X GET "http://$MODEM_IP/api/webserver/SesTokInfo" \
 -H "Cookie: $SESSION_ID" > ses_tok2.xml
ADM_TOKEN=`grep "TokInfo" ses_tok2.xml | cut -b 10-41`

и затем вы можете использовать этот ADM_TOKEN для запуска следующей команды

curl -v http://192.168.8.1/api/sms/send-sms \
 -H "Cookie: $SESSION_ID" \
 -H "__RequestVerificationToken: $ADM_TOKEN" \
 -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
 -H "Accept: */*" \
 -H "Referer: http://192.168.8.1/html/smsinbox.html" \
 -H 'X-Requested-With: XMLHttpRequest' \
 -H "Connection: keep-alive" \
 -H "Origin: http://192.168.8.1" \
 --data $message_data \
 --dump-header send_result.txt
person rickvdbosch    schedule 27.12.2018
comment
спасибо за ваш ответ и извините за время ответить, в первом случае я восстановил сеанс и токен в одном запросе до api/webserver/SesTokInfo после вашего ответа, я беру сеанс в первом запросе, я помещаю его в файл cookie во втором запрос на получение токена, и после того, как я поместил файл cookie и токен в почтовый запрос на api/sms/send-sms, но это по-прежнему ничего не меняет даже при успешном ответе, я не получаю свое sms - person lebarillier; 04.01.2019