Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
sergeos
206 / 23 / 5
Регистрация: 12.06.2012
Сообщений: 185
#1

Небольшой перегон кода из c# на vb.net - Visual Basic .NET

18.03.2017, 23:48. Просмотров 155. Ответов 3
Метки нет (Все метки)

Надо проверить одно решение, искал по сети, у человека похожая проблема, и ему там подсказали решение но оно на c#.
Какбы это с шарпа всё перенести на бейсик?
Вот человек пишет, мол, что ему надо выражение перевести в vb.net
Anyway, I need to convert the following cURL command to vb.net to obtain an access token from an OAuth2 authorisation server. I'm normally reasonably competent handling HTTP requests in vb.net but I just can't get this to work. can anyone help please?

curl *-u *ID_Key:Secret_Key *[url]https://targetURL.com[/url] *-d *'grant_type=client_credentials'

My coding is:
* * * *
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim credstring As String = "ID_Key:Secret_Key"
* * * * Dim authstring As String = Convert.ToBase64String(Encoding.UTF8.GetBytes(credstring))
 
* * * * Dim webrequest As WebRequest = webrequest.Create("https://targetURL.com?grant_type=client_credentials")
 
* * * * With webrequest
* * * * * * .Headers.Add("Authorization", "BASIC "*& authstring)
 
* * * * * * Dim webresponse As HttpWebResponse = .GetResponse() '
 
* * * * * * Dim stream As System.IO.Stream = webresponse.GetResponseStream()
* * * * * * Dim reader As New StreamReader(stream, Encoding.UTF8)
* * * * * * Dim contents As String = reader.ReadToEnd()
* * * * * * Debug.Print(contents)
* * * * End With
в итоге у него там не работает, и ему рекомендуют советы на шарпе, конкретно вот что:
The -d option for cURL is for POST data. You need to take the parameters out of the URL, change the type to POST, and put the data into the request's data stream. It's been a while since I've written VB, but I tried to convert some working code from C# that I have. Might take some tweaking, but try this:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
// Get a byte array for the data
Dim strPostData As String = "grant_type=client_credentials"
Dim baPostData as Byte[] = System.Text.Encoding.UTF8.GetBytes(postData)
 
// Set the POST Data * * * * *
System.IO.Stream stPostData = .GetRequestStream()
stPostData.Write (stPostData, 0, stPostData.Length)
stPostData.Close()
 
// Set the webrequest properties
.Method = "POST"
.ContentType = "application/x-www-form-urlencoded"
.ContentLength = baPostData.Length

Вопрос такой: как всё это собрать в один код на VB.NET? Вроде и не сложно, а не получается, по-крйне мере к меня красным подсвечивается ошибка:

Ошибка BC30311 Значение типа "Stream" невозможно преобразовать в "Byte()". JSON_t c:\Projects\VB.NET\JSON_t\JSON_t\Form1.vb 21 Активно

на этой строке:
vb.net
1
2
3
4
            'Set the POST Data * * * * *
            Dim stPostData As System.IO.Stream = .GetRequestStream()
            stPostData.Write(stPostData, 0, stPostData.Length)    '<----- ТУТ
            stPostData.Close()

http://www.cyberforum.ru/vb-net/thread674723.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2017, 23:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Небольшой перегон кода из c# на vb.net (Visual Basic .NET):

Разобрать небольшой участок кода
Привет всем, есть конструкция следующего типа def speak(message): ...

Переписать небольшой фрагмент кода с C на Haskell
Хочу сравнить фрагмент кода на C и Haskell. Покажите мне как следующий код,...

Небольшой эксперимент в написании кода на си. Avr
// Работает. Минус: находится первое же сообщение, но, АКТУАЛЬНОЕ сообщение...

Обьясните пожалуйста небольшой кусок кода
Добрый день. Написал программу списка, но не совсем понимаю работу одного...

Объясните небольшой фрагмент кода (новые стандарты)
template&lt;typename Op, typename ... F&gt; class TupleComposer { public: Op...

3
ViterAlex
6348 / 3552 / 1458
Регистрация: 11.02.2013
Сообщений: 7,819
Завершенные тесты: 3
18.03.2017, 23:55 #2
Опечатка в параметрах. Передавать нужно baPostData, а не stPostData
vb.net
1
stPostData.Write(baPostData, 0, baPostData.Length)
0
Navthe
49 / 49 / 17
Регистрация: 12.02.2017
Сообщений: 260
Завершенные тесты: 1
19.03.2017, 00:03 #3
Цитата Сообщение от sergeos Посмотреть сообщение
Какбы это с шарпа всё перенести на бейсик?
Через конвентер кода
0
sergeos
206 / 23 / 5
Регистрация: 12.06.2012
Сообщений: 185
19.03.2017, 00:33  [ТС] #4
Navthe, не, тут тонкая работа профессионала нужна...
вот ViterAlex сразу заметил ошибку, но всё равно не завёлся код пока.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2017, 00:33
Привет! Вот еще темы с решениями:

Перегон информации по имени
Всем добрый вечер, возникла следующая проблема. Есть две таблицы test id ...

Небольшой сайт на ASP.NET. Есть ли какие-нибудь обучающие статьи, видеоуроки или книги
Здравствуйте, уважаемые форумчане! Появилась необходимость создать небольшой...

Есть ли в ASP перегон HTML в текст??
Люди, кто давно работает с АСПой, подскажите. в ПХП была офигенная функция (не...

Небольшой шаблонный класс matrix: комментарии/критика относительно кода с точки зрения правильности написания
В плане своего общего развития написал не большой шаблонный класс matrix. Хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru