質問編集履歴
1
コードの修正
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -1,37 +1,69 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            課題:同じようなプログラミングなのにエラーが発生する理由とその対策をわかる方教えてください。
         
     | 
| 
       1 
     | 
    
         
            -
            Mainからスプリクトを読んだとき、 
     | 
| 
      
 2 
     | 
    
         
            +
            Mainからスプリクトを読んだとき、3つ目のスプリクトでエラーが発生するのを回避したいです。
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
3 
     | 
    
         
             
            Main.ps1
         
     | 
| 
      
 4 
     | 
    
         
            +
            C:\test\無題12.ps1
         
     | 
| 
       4 
5 
     | 
    
         
             
            C:\test\無題13.ps1
         
     | 
| 
       5 
     | 
    
         
            -
            C:\test\無題 
     | 
| 
      
 6 
     | 
    
         
            +
            C:\test\無題14.ps1
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            無題 
     | 
| 
      
 8 
     | 
    
         
            +
            無題12.ps1
         
     | 
| 
       8 
     | 
    
         
            -
            $uri = "https://api.chatwork.com/v2/rooms/$ 
     | 
| 
      
 9 
     | 
    
         
            +
            $uri = "https://api.chatwork.com/v2/rooms/$roomid/files"
         
     | 
| 
       9 
10 
     | 
    
         
             
            $filepath = "C:\Users\user\Desktop\errorlog.txt"
         
     | 
| 
       10 
11 
     | 
    
         
             
            $wc = New-Object System.Net.WebClient
         
     | 
| 
       11 
     | 
    
         
            -
            $wc.Headers.add("X-ChatWorkToken", "$ 
     | 
| 
      
 12 
     | 
    
         
            +
            $wc.Headers.add("X-ChatWorkToken", "$Token")
         
     | 
| 
       12 
     | 
    
         
            -
            $wc.Headers.add("ContentType", "multipart/form- 
     | 
| 
      
 13 
     | 
    
         
            +
            $wc.Headers.add("ContentType", "multipart/form-data")
         
     | 
| 
      
 14 
     | 
    
         
            +
            $header = @{
         
     | 
| 
      
 15 
     | 
    
         
            +
            "X-ChatWorkToken"= "$Token"
         
     | 
| 
      
 16 
     | 
    
         
            +
            "ContentType"="multipart/form-data"
         
     | 
| 
      
 17 
     | 
    
         
            +
            }
         
     | 
| 
      
 18 
     | 
    
         
            +
            $fileBin = [System.IO.File]::ReadAlltext($filePath)
         
     | 
| 
      
 19 
     | 
    
         
            +
            $boundary = [System.Guid]::NewGuid().ToString()
         
     | 
| 
      
 20 
     | 
    
         
            +
            $LF = "`r`n"
         
     | 
| 
      
 21 
     | 
    
         
            +
            $bodyLines = (
         
     | 
| 
      
 22 
     | 
    
         
            +
                "--$boundary",
         
     | 
| 
      
 23 
     | 
    
         
            +
                "Content-Disposition: form-data; name=`"file`"; filename=test.csv",
         
     | 
| 
      
 24 
     | 
    
         
            +
                "Content-Type: application/octet-stream$LF",
         
     | 
| 
      
 25 
     | 
    
         
            +
                $fileBin,
         
     | 
| 
      
 26 
     | 
    
         
            +
                "--$boundary--$LF"
         
     | 
| 
      
 27 
     | 
    
         
            +
            ) -join $LF
         
     | 
| 
      
 28 
     | 
    
         
            +
            $aaa = Invoke-RestMethod $uri -Headers $header -Method post  -ContentType "multipart/form-data; boundary=`"$boundary`"" -Body $bodyLines
         
     | 
| 
      
 29 
     | 
    
         
            +
            $boundary
         
     | 
| 
      
 30 
     | 
    
         
            +
            $aaa
         
     | 
| 
       13 
31 
     | 
    
         
             
            $res = $wc.UploadFile($uri,$filepath)
         
     | 
| 
       14 
32 
     | 
    
         
             
            $con = [text.encoding]::UTF8.GetString($res)
         
     | 
| 
       15 
33 
     | 
    
         | 
| 
       16 
34 
     | 
    
         
             
            $con
         
     | 
| 
       17 
35 
     | 
    
         
             
            $wc.W($con);
         
     | 
| 
       18 
36 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            無題 
     | 
| 
      
 37 
     | 
    
         
            +
            無題13.ps1
         
     | 
| 
       20 
     | 
    
         
            -
            $uri= "https://api. 
     | 
| 
      
 38 
     | 
    
         
            +
            $uri = "https://api.chatwork.com/v2/rooms/$roomid/files"
         
     | 
| 
       21 
     | 
    
         
            -
            $filepath = "C:\Users\user\Desktop\ 
     | 
| 
      
 39 
     | 
    
         
            +
            $filepath = "C:\Users\user\Desktop\errorlog.txt"
         
     | 
| 
      
 40 
     | 
    
         
            +
            $wc = New-Object System.Net.WebClient
         
     | 
| 
      
 41 
     | 
    
         
            +
            $wc.Headers.add("X-ChatWorkToken", "$Token")
         
     | 
| 
      
 42 
     | 
    
         
            +
            $wc.Headers.add("ContentType", "multipart/form-data4")
         
     | 
| 
      
 43 
     | 
    
         
            +
            $res = $wc.UploadFile($uri,$filepath)
         
     | 
| 
      
 44 
     | 
    
         
            +
            $con = [text.encoding]::UTF8.GetString($res)
         
     | 
| 
       22 
45 
     | 
    
         | 
| 
      
 46 
     | 
    
         
            +
            無題14.ps1
         
     | 
| 
      
 47 
     | 
    
         
            +
            $uri = "https://api.chatwork.com/v2/rooms/$roomid/files"
         
     | 
| 
      
 48 
     | 
    
         
            +
            $filepath = "C:\Users\user\Desktop\errorlog.txt"
         
     | 
| 
      
 49 
     | 
    
         
            +
            echo $x
         
     | 
| 
       23 
50 
     | 
    
         
             
            $wc = New-Object System.Net.WebClient
         
     | 
| 
       24 
     | 
    
         
            -
            $wc.Headers.add("X- 
     | 
| 
      
 51 
     | 
    
         
            +
            $wc.Headers.add("X-ChatWorkToken", "$Token")
         
     | 
| 
       25 
     | 
    
         
            -
            $wc.Headers.add("name", "test")
         
     | 
| 
       26 
     | 
    
         
            -
            $wc.Headers.add(" 
     | 
| 
      
 52 
     | 
    
         
            +
            $wc.Headers.add("ContentType", "multipart/form-data")
         
     | 
| 
       27 
53 
     | 
    
         
             
            $res = $wc.UploadFile($uri,$filepath)
         
     | 
| 
       28 
54 
     | 
    
         
             
            $con = [text.encoding]::UTF8.GetString($res)
         
     | 
| 
       29 
     | 
    
         
            -
            $ 
     | 
| 
      
 55 
     | 
    
         
            +
            $con
         
     | 
| 
       30 
56 
     | 
    
         | 
| 
       31 
57 
     | 
    
         
             
            エラーコード
         
     | 
| 
       32 
     | 
    
         
            -
            "2" 個の引数を指定して "UploadFile" を呼び出し中に例外が発生しました: "リモート サーバーがエラーを返しました: ( 
     | 
| 
      
 58 
     | 
    
         
            +
            "2" 個の引数を指定して "UploadFile" を呼び出し中に例外が発生しました: "リモート サーバーがエラーを返しました: (401) 許可されていません"
         
     | 
| 
       33 
     | 
    
         
            -
            発生場所 C:\test\無題 
     | 
| 
      
 59 
     | 
    
         
            +
            発生場所 C:\test\無題14.ps1:7 文字:1
         
     | 
| 
      
 60 
     | 
    
         
            +
            + $res = $wc.UploadFile($uri,$filepath)
         
     | 
| 
      
 61 
     | 
    
         
            +
            + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         
     | 
| 
      
 62 
     | 
    
         
            +
                + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
         
     | 
| 
      
 63 
     | 
    
         
            +
                + FullyQualifiedErrorId : WebException
         
     | 
| 
       34 
64 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
            記憶を頼りに書いているので本コードはすこし違うかもしれませんが、一つ目のUploadFileはうまくいくのですが、二つ目がうまくいかない利用がわかりません。
         
     | 
| 
      
 65 
     | 
    
         
            +
            ~~~~~打ち消し線~~~~記憶を頼りに書いているので本コードはすこし違うかもしれませんが、一つ目~~のUploadFileはうまくいくのですが、二つ目がうまくいかない利用がわかりません。~~~~打ち消し線~~
         
     | 
| 
       36 
66 
     | 
    
         | 
| 
      
 67 
     | 
    
         
            +
            追記:自宅の環境でも同じ状態を作り出すことに成功したので、コードを修正、コピペ品をしました。よろしくお願いいたします。
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
       37 
     | 
    
         
            -
            環境:powershell 4
         
     | 
| 
      
 69 
     | 
    
         
            +
            環境:powershell 4 ,windows 10
         
     |