C# TR-064 Написание напрямую в Fritz! Box Phonebook [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 C# TR-064 Написание напрямую в Fritz! Box Phonebook [закрыто]

Сообщение Anonymous »

Я тиринг, чтобы написать в Fritz! Box Phonebook по SOAP запросу, но он не будет работать. Я получил ошибку 403, неверные аргументы.
Вот мой код: < /p>
private async void SendPhonebookToFBoxAction(object obj)
{

string fritzBoxUrl = "http://fritz.box"; // Default FritzBox URL
string username1 = settingsModel.FBoxUsername; // Default FritzBox username
string password1 = AESHelper.DecryptWithDPAPI(Convert.FromBase64String(settingsModel.FBoxPassword.EncryptedPassword)); // Decrypt the password using DPAPI

//var handler = new HttpClientHandler();
//var client1 = new HttpClient(handler);
var byteArray = Encoding.ASCII.GetBytes($"{username1}:{password1}"); // Create a base64 encoded string for Basic Authentication
//client1.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); // Set the Authorization header for Basic Authentication

var handler = new HttpClientHandler
{
Credentials = new NetworkCredential(username1, password1)
};

using (var client = new HttpClient(handler))
{

// Implementation for sending phonebook to FritzBox
// This method can be implemented later as per requirements, eventually asynchronously
string newPhonebookEntryData = //@"" +
@"" +
@"0" +
"" +
"" +
"";

Debug.WriteLine($"SOAP Body: {soapBody}"); // Log the SOAP body for debugging

var request1 = (HttpWebRequest)WebRequest.Create(url);
request1.Method = "POST";
request1.ContentType = "text/xml; charset=\"utf-8\" ";
//request1.Headers.Add("SOAPACTION", $"\"urn:dslforum-org:service:X_AVM-DE-Phonebook:1#AddPhonebookEntry\""); // Set the SOAP action header
request1.Headers.Add("SOAPACTION", $"\"{service}#{action}\""); // Set the SOAP action header
request1.Credentials = new NetworkCredential(settingsModel.FBoxUsername, password1); // Set the credentials for the request

using (var stream = await request1.GetRequestStreamAsync())
using (var writer = new StreamWriter(stream))
{
writer.Write(soapBody);
}

try
{
using (var response = (HttpWebResponse)await request1.GetResponseAsync())
using (var reader = new StreamReader(response.GetResponseStream()))
{
string result = await reader.ReadToEndAsync();
Debug.WriteLine($"Response: {result}");
}
}
catch (WebException ex)
{
using (var reader = new StreamReader(ex.Response.GetResponseStream()))
{
string errorResponse = reader.ReadToEnd();
Debug.WriteLine($"Error: {errorResponse}");
MessageBox.Show($"Error sending phonebook entry: {errorResponse}", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
}
< /code>
Я попробовал запрос SOAP, используя NewPhoneBookEntry, NewPhoneBookEntryData, с и без блока CDATA в блоке SOAP запроса. Ничего не работает. Я получил сообщение об ошибке 402 - Неверные аргументы - каждый раз.



s:Client
UPnPError


402
Invalid Args







Подробнее здесь: https://stackoverflow.com/questions/796 ... -phonebook
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»