質問編集履歴
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
|