質問編集履歴

1

コードの修正

2019/11/14 14:13

投稿

kokesi
kokesi

スコア5

test CHANGED
File without changes
test CHANGED
@@ -1,26 +1,62 @@
1
+ 課題:同じようなプログラミングなのにエラーが発生する理由とその対策をわかる方教えてください。
2
+
1
- Mainからスプリクトを読んだとき、2つ目のスプリクトでエラーが発生するのを回避したいです。
3
+ Mainからスプリクトを読んだとき、3つ目のスプリクトでエラーが発生するのを回避したいです。
4
+
5
+ Main.ps1
6
+
7
+ C:\test\無題12.ps1
8
+
9
+ C:\test\無題13.ps1
10
+
11
+ C:\test\無題14.ps1
2
12
 
3
13
 
4
14
 
5
- Main.ps1
15
+ 無題12.ps1
6
16
 
7
- C:\test\無題13.ps1
8
-
9
- C:\test\無題16.ps1
10
-
11
-
12
-
13
- 無題13.ps1
14
-
15
- $uri = "https://api.chatwork.com/v2/rooms/$rommID/files"
17
+ $uri = "https://api.chatwork.com/v2/rooms/$roomid/files"
16
18
 
17
19
  $filepath = "C:\Users\user\Desktop\errorlog.txt"
18
20
 
19
21
  $wc = New-Object System.Net.WebClient
20
22
 
21
- $wc.Headers.add("X-ChatWorkToken", "$token")
23
+ $wc.Headers.add("X-ChatWorkToken", "$Token")
22
24
 
23
- $wc.Headers.add("ContentType", "multipart/form-data4")
25
+ $wc.Headers.add("ContentType", "multipart/form-data")
26
+
27
+ $header = @{
28
+
29
+ "X-ChatWorkToken"= "$Token"
30
+
31
+ "ContentType"="multipart/form-data"
32
+
33
+ }
34
+
35
+ $fileBin = [System.IO.File]::ReadAlltext($filePath)
36
+
37
+ $boundary = [System.Guid]::NewGuid().ToString()
38
+
39
+ $LF = "`r`n"
40
+
41
+ $bodyLines = (
42
+
43
+ "--$boundary",
44
+
45
+ "Content-Disposition: form-data; name=`"file`"; filename=test.csv",
46
+
47
+ "Content-Type: application/octet-stream$LF",
48
+
49
+ $fileBin,
50
+
51
+ "--$boundary--$LF"
52
+
53
+ ) -join $LF
54
+
55
+ $aaa = Invoke-RestMethod $uri -Headers $header -Method post -ContentType "multipart/form-data; boundary=`"$boundary`"" -Body $bodyLines
56
+
57
+ $boundary
58
+
59
+ $aaa
24
60
 
25
61
  $res = $wc.UploadFile($uri,$filepath)
26
62
 
@@ -34,40 +70,68 @@
34
70
 
35
71
 
36
72
 
37
- 無題16.ps1
73
+ 無題13.ps1
38
74
 
39
- $uri= "https://api.docbase.io/teams/rrrrr/attachments"
75
+ $uri = "https://api.chatwork.com/v2/rooms/$roomid/files"
40
76
 
41
- $filepath = "C:\Users\user\Desktop\新しいフォルダー\テスト.xlsx"
77
+ $filepath = "C:\Users\user\Desktop\errorlog.txt"
42
-
43
-
44
78
 
45
79
  $wc = New-Object System.Net.WebClient
46
80
 
47
- $wc.Headers.add("X-DocBaseToken", "$token")
81
+ $wc.Headers.add("X-ChatWorkToken", "$Token")
48
82
 
49
- $wc.Headers.add("name", "test")
50
-
51
- $wc.Headers.add("Content-Type", "text/plain")
83
+ $wc.Headers.add("ContentType", "multipart/form-data4")
52
84
 
53
85
  $res = $wc.UploadFile($uri,$filepath)
54
86
 
55
87
  $con = [text.encoding]::UTF8.GetString($res)
56
88
 
89
+
90
+
91
+ 無題14.ps1
92
+
93
+ $uri = "https://api.chatwork.com/v2/rooms/$roomid/files"
94
+
95
+ $filepath = "C:\Users\user\Desktop\errorlog.txt"
96
+
97
+ echo $x
98
+
99
+ $wc = New-Object System.Net.WebClient
100
+
101
+ $wc.Headers.add("X-ChatWorkToken", "$Token")
102
+
103
+ $wc.Headers.add("ContentType", "multipart/form-data")
104
+
105
+ $res = $wc.UploadFile($uri,$filepath)
106
+
107
+ $con = [text.encoding]::UTF8.GetString($res)
108
+
57
- $conn
109
+ $con
58
110
 
59
111
 
60
112
 
61
113
  エラーコード
62
114
 
63
- "2" 個の引数を指定して "UploadFile" を呼び出し中に例外が発生しました: "リモート サーバーがエラーを返しました: (400) 要求が不適切です"
115
+ "2" 個の引数を指定して "UploadFile" を呼び出し中に例外が発生しました: "リモート サーバーがエラーを返しました: (401) 許可されていません"
64
116
 
65
- 発生場所 C:\test\無題16.ps1:8 文字:1
117
+ 発生場所 C:\test\無題14.ps1:7 文字:1
118
+
119
+ + $res = $wc.UploadFile($uri,$filepath)
120
+
121
+ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122
+
123
+ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
124
+
125
+ + FullyQualifiedErrorId : WebException
66
126
 
67
127
 
68
128
 
69
- 記憶を頼りに書いているので本コードはすこし違うかもしれませんが、一つ目のUploadFileはうまくいくのですが、二つ目がうまくいかない利用がわかりません。
129
+ ~~~~~打ち消し線~~~~記憶を頼りに書いているので本コードはすこし違うかもしれませんが、一つ目~~のUploadFileはうまくいくのですが、二つ目がうまくいかない利用がわかりません。~~~~打ち消し線~~
70
130
 
71
131
 
72
132
 
133
+ 追記:自宅の環境でも同じ状態を作り出すことに成功したので、コードを修正、コピペ品をしました。よろしくお願いいたします。
134
+
135
+
136
+
73
- 環境:powershell 4
137
+ 環境:powershell 4 ,windows 10