Объединение строк
Привет. 2 день знаком с C#. Пытался, как в Java, объединить строки, чтобы выполнить запрос:
"https://api.vk.com/method/audio.get?oid="+uid+"&need_user=0&count=0&offset=0&access_token="+access_token"
Но строки не объединяются. В чём ошибка?
Обновление
public class Authorization {
String login;
String password;
String accessToken;
String uid;
public Authorization(String login, String password) {
this.login = login;
this.password = password;
}
public String StartAuthorize() {
WebBrowser browser = new WebBrowser();
browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Authorize);
browser.Navigate("https://oauth.vk.com/authorize?client_id=4846118&redirect_uri=http://api.vk.com/blank.html&scope=audio&display=wap&response_type=token");
return "success";
}
public void Authorize(object sender, WebBrowserDocumentCompletedEventArgs e) {
HtmlDocument document = ((WebBrowser) sender).Document;
HtmlElementCollection inputs = document.GetElementsByTagName("input");
for (int i = 0; i < inputs.Count; i++) {
if (inputs[i].GetAttribute("name").Equals("email")) {
inputs[i].SetAttribute("value", login);
}
if (inputs[i].GetAttribute("name").Equals("pass")) {
inputs[i].SetAttribute("value", password);
}
if (inputs[i].GetAttribute("type").Equals("submit")) {
inputs[i].InvokeMember("click");
}
}
if (!((WebBrowser) sender).Url.ToString().Contains("access_token")) {
inputs = document.GetElementsByTagName("input");
for (int i = 0; i < inputs.Count; i++) {
if (inputs[i].GetAttribute("type").Equals("submit")) {
inputs[i].InvokeMember("click");
}
}
}
accessToken = document.Url.ToString().Split('=')[1].Split('&')[0];
uid = document.Url.ToString().Substring(document.Url.ToString().LastIndexOf('=')+1);
}
}
С помощью такого кода получаю access_token через VK api. В этих строчках:
accessToken = document.Url.ToString().Split('=')[1].Split('&')[0];
uid = document.Url.ToString().Substring(document.Url.ToString().LastIndexOf('=')+1);
Успешно присваиваются данные к строкам (проверил с помощью отладки), но в этой строчке:
return "success";
Переменные null. Я так понял, что return происходит раньше, чем WebBrowser успеет выполнить свою часть кода. Как исправить это?
Обновление 2
Как сделать, чтобы WebBrowser дождался загрузки страницы и в то же время остальная часть кода подождала, когда WebBrowser выполнит все поставленные ему задачи.
Источник: Stack Overflow на русском