2014-01-05 2 views
0

Я пытаюсь написать простое мобильное приложение для управления некоторыми основными функциями VLC. Я на самом деле новичок в этом и просто пытаюсь обернуть голову вокруг всего, но я читал и нашел код:HTTP-сообщения для игрока VLC

Это код qml, и я сделал основные изменения в деталях, которые я понял:

Component.onCompleted: { 
    var http = new XMLHttpRequest() 
    var url = "http://" + ip + ":" + port; 
    var params = "num=22&num2=333"; 
    http.open("POST", url, true); 

    // Send the proper header information along with the request 
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http.setRequestHeader("Content-length", params.length); 
    http.setRequestHeader("Connection", "close"); 

    http.onreadystatechange = function() { // Call a function when the state changes. 
     if (http.readyState == 4) { 
      if (http.status == 200) { 
       console.log("ok") 
      } else { 
       console.log("error: " + http.status) 
      } 
     } 
    } 
    http.send(params); 
} 

также нашел Java-код:

webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted); 
       string credentials = String.Format("{0}:{1}", username, password); 
       byte[] bytes = Encoding.UTF8.GetBytes(credentials); 
       string base64 = Convert.ToBase64String(bytes); 
       string authorization = String.Concat("Basic ", base64); 
       webClient.Headers["Authorization"] = authorization; 
       string url = "http://" + ip + ":" + port + "/requests/status.xml"; 
       var uri = new Uri(url); 
       webClient.DownloadStringAsync(uri); 

часть в настоящее время я потерял с QML не я не знаю, как передать учетные данные для входа в систему, как VLC требуется пароль.

ли кто-нибудь сможет мне помочь, как изменить код QML для подключения к клиенту HTTP, а затем иметь возможность передавать команды, как:

http://localhost:8080/requests/status.xml?command=pl_play 

Спасибо :)

ответ

1

Не то, опытным с QML, поэтому я могу только предоставить псевдокод. Простейшей формой HTTP-аутентификации является заголовок Authorization, содержащий строку Basic, за которой следует пробел и имя пользователя и пароль, разделенные двоеточием : в базе64.

Предполагая, что base64() возвращает B64 представительские пройденных данных, это должно сделать:

http.setRequestHeader("Authorization", "Basic " + base64(username + ":" + password)); 
+0

Ох. Уже принято? Это сработало? – DaSourcerer

+0

Да, это сработало, как шарм :) У меня просто проблемы с получением сейчас: https://stackoverflow.com/questions/21006793/http-get-status-of-vlc-player – user1031204

Смежные вопросы