VB.NET(Windowsアプリ)からWebBrowserに短縮URLを表示(bit.lyでV4のPHP)
はぁ~~~、VB.NETだけでも何か方法があるんでしょうけど、、、、
つい、bit.lyでV4のPHPサンプルを見つけたので、
「VB.NETで作っているアプリ上に細長いサイズ(返って来る短縮URLの1行だけ見えればいいので)WebBrowserコントロールを使って、そこに別サーバーにあるPHPに長いURLを投げて短縮URLを表示する」
ということにしました。
PHP:ファイルの名前はgetbitly.php としてみました。これはWebサーバーに置きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php $long_url
=
$_GET["long_url"]; $apiv4
=
'https://api-ssl.bitly.com/v4/bitlinks'; $genericAccessToken
=
'xxxxxxxxxxxxxxxxxxxxxxxxxx'; $data
=
array( 'long_url'
=>
$long_url ); $payload
=
json_encode($data); $header
=
array( 'Authorization: Bearer '
.
$genericAccessToken, 'Content-Type: application/json', 'Content-Length: '
.
strlen($payload) ); $ch
=
curl_init($apiv4); curl_setopt($ch,
CURLOPT_CUSTOMREQUEST,
"POST"); curl_setopt($ch,
CURLOPT_POSTFIELDS,
$payload); curl_setopt($ch,
CURLOPT_RETURNTRANSFER,
true); curl_setopt($ch,
CURLOPT_HTTPHEADER,
$header); $result
=
curl_exec($ch); $resultToJson
=
json_decode($result); if
(isset($resultToJson->link))
{ echo
$resultToJson->link; } else
{ echo
'Not found'; } ?> |
VB.NET(VisualStudio2017)・デスクトップアプリ側では、WebBrowserコントールとボタン・テキストボックスを配置して、
1 2 3 4 5 6 7 8 9 10 |
Private
Sub Button1_Click_1(sender As
Object,
e
As
EventArgs)
Handles Button1.Click Me.WebBrowser1.Visible
=
True Dim LongURL As
String
=
HttpUtility.UrlEncode(Me.Txtbox1.Text.ToString) Dim request
=
String.Format("https://xxxxxxxx/getbitly.php?long_url={0}",
LongURL) WebBrowser1.Url
=
New
Uri(request) End
Sub |
※TxtBox1には長ーいURL(??が一杯ついたパラメータ付)のサイトURLをコピーして、ボタンをクリックすると、アプリ内に短縮URLが表示されるという仕組み。最初にわからんかったのは、HttpUtility.UrlEncodeですね。