月別アーカイブ: 2013年9月

[VBA]HTTPリクエストを送信してステータスコードを取得する

複数のURLに対してGETリクエストを送信するというツールを作ったのでメモ。
今回はリクエストに対し、レスポンスのステータスコードを取得することにした。

A列にURLをセットし実行すると、B列にステータスコードがセットされる、というマクロ。

Sub Sample()

    Dim i As Long
    Dim bottom As Long
  
    '最下行を取得
    bottom = Range("A65536").End(xlUp).Row
  
    '最下行まで繰り返し
    For i = 1 To bottom
    
        'A列のURLに対し、
        'ステータスコードをB列にセット
        Range("B" & i) = GetWebStatus(Range("A" & i))
  
    Next i
  
End Sub

Function GetWebStatus(URL As String) As String

    Dim WinHttp As Object

    '"WinHttp.WinHttpRequest.5.1"ではうまくいかなかったため
    '"MSXML2.XMLHTTP"を利用
    'Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
    Set WinHttp = CreateObject("MSXML2.XMLHTTP")

On Error GoTo INVALID

    
    WinHttp.Open "GET", URL, False
    WinHttp.send  'GETリクエストを送信

    GetWebStatus = WinHttp.Status  'ステータスコードをセット
  
    Set WinHttp = Nothing
  
    Exit Function
  
INVALID:
    GetWebStatus = "Invalid URL"
  
    Set WinHttp = Nothing
  
End Function

実行後のイメージは以下のような感じ。

参考:http://okwave.jp/qa/q5474619.html

Invalid Binaryの原因

iPhoneアプリを勉強がてら作成したので、リリースしてみることにしたが、手順にしたがって手続きを進めていくと、最後のアーカイブをアップロードしたあとに、StatuがUpload RecievedからInvalid Binaryとなってしまった。

調べてみると、これはどうも、審査落ち以前の問題で、アップロードされたアーカイブに不備がある状態とのこと。

しばらくすると、Apple様からメールが来た。メールには何が原因だったが書かれていた。

Corrupt Image File – The image file Default-568h@2x.png appears to be corrupt.

どうやら、起動画面の画像に問題があるらしい。
起動画面に使ってる画像はPhotoshopで作成したPNGファイルなのだが、サイズは間違っていない。

ググりまくってたら、どうも古いバージョンのXcodeのバグで、ビルドの設定を変えたら通るとの投稿をstackoverflow.comに見つけたので、駄目元で試してみると、これがあっさりWating for Reviewになってくれた。
Icon@2x.PNG Even though it isn’t? Can’t submit Apps to iTunes Connect

1.Project > target > Build Settings > Show All > Packagingを参照
2.Compress PNG Files のトグルをNoにする。

Xcodeのバージョンは最新(4.6.3)のものを使っているんだけど。。。
とりあえず、通ったからよしとしよう。審査結果は如何に?

ちなみに絶対に絶対に挫折しない iPhoneアプリ開発「超」入門【iOS6対応版】を参考につくってるんだけど、リリースの仕方までとても丁寧に書かれているから大変参考になりました。ただ、サンプルコードから一歩踏み込んで、練習問題、応用問題みたいな、自分で考える→自分でコード書く→答え合わせして自分のコードと他人のコードを比較するってプロセスまであれば、より力がつくんじゃないかな。