質問編集履歴

4

変更した

2021/08/06 04:06

投稿

snowdropAPP
snowdropAPP

スコア41

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- visualstudioのwindowsformapplicationにてHTTPサーバーを建てようと思っています。
5
+ Visual Studio Windows forms applicationにてHTTPサーバーを建てようと思っています。
6
6
 
7
7
  クライアント側からPOSTMethodにてデータを送信。
8
8
 

3

変更した

2021/08/06 04:06

投稿

snowdropAPP
snowdropAPP

スコア41

test CHANGED
@@ -1 +1 @@
1
- C#でhttpサーバーを作成してるときの出来事でした...
1
+ C#でhttpサーバーにてPOSTデータ受け取りた
test CHANGED
@@ -52,7 +52,11 @@
52
52
 
53
53
 
54
54
 
55
+ POSTデータを取得したいと思いますがRequestがメソッドなのか変数なのか、使えるのか使えないのかがわかりません。
56
+
55
- ASP.netでやるしですね...
57
+ 知ってることがあれば教え頂けると幸いです
58
+
59
+
56
60
 
57
61
 
58
62
 

2

2021/08/06 03:29

投稿

snowdropAPP
snowdropAPP

スコア41

test CHANGED
File without changes
test CHANGED
@@ -40,6 +40,8 @@
40
40
 
41
41
 
42
42
 
43
+ そうか、変数名なのか!
44
+
43
45
  そう思ったので以下リンクまでたどり着きましたが、フォームコレクション内の値を取得と書いていましたので違う...?
44
46
 
45
47
  [HttpRequest.Form プロパティ](https://docs.microsoft.com/ja-jp/dotnet/api/system.web.httprequest.form?view=netframework-4.8)

1

変更した

2021/08/06 02:56

投稿

snowdropAPP
snowdropAPP

スコア41

test CHANGED
File without changes
test CHANGED
@@ -54,194 +54,184 @@
54
54
 
55
55
 
56
56
 
57
- ### 発生している問題・エラメッセ
57
+ ### 該当のソスコ
58
+
59
+
60
+
61
+ ```C#
62
+
63
+ using System;
64
+
65
+ using System.Collections.Generic;
66
+
67
+ using System.ComponentModel;
68
+
69
+ using System.Data;
70
+
71
+ using System.Drawing;
72
+
73
+ using System.Linq;
74
+
75
+ using System.Text;
76
+
77
+ using System.Threading.Tasks;
78
+
79
+ using System.Windows.Forms;
80
+
81
+ using System.Threading;
82
+
83
+ using System.Net.Sockets;
84
+
85
+ using System.Net;
86
+
87
+ using System.Diagnostics;
88
+
89
+ using System.Windows;
90
+
91
+ using System.IO;
92
+
93
+ using System.Net.Http;
94
+
95
+ using System.Net.WebSockets;
96
+
97
+ using System.Web;
98
+
99
+ using System.Collections.Specialized;
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+ namespace webServerTest
110
+
111
+ {
112
+
113
+ public partial class Form1 : Form
114
+
115
+ {
116
+
117
+ public Form1()
118
+
119
+ {
120
+
121
+ InitializeComponent();
122
+
123
+ }
124
+
125
+
126
+
127
+ private void button1_Click(object sender, EventArgs e)
128
+
129
+ {
130
+
131
+ Thread thread = new Thread(connect);
132
+
133
+ thread.Start();
134
+
135
+ }
136
+
137
+
138
+
139
+ private void connect()
140
+
141
+ {
142
+
143
+
144
+
145
+ HttpListener listtner = new HttpListener();
146
+
147
+ //とりあえずローカル
148
+
149
+ listtner.Prefixes.Add("http://*:80/");
150
+
151
+ listtner.Start();
152
+
153
+
154
+
155
+
156
+
157
+ while (true)
158
+
159
+ {
160
+
161
+ HttpListenerContext context = listtner.GetContext();
162
+
163
+
164
+
165
+ HttpListenerRequest req = context.Request;
166
+
167
+ HttpListenerResponse res = context.Response;
168
+
169
+
170
+
171
+ //クライアントからの接続メソッド?判別
172
+
173
+ string str = req.HttpMethod;
174
+
175
+
176
+
177
+
178
+
179
+ if(str == "POST")
180
+
181
+ {
182
+
183
+            //string postData = Request.Form["key"]; ← Requestコンパイルエラーで使えない...
184
+
185
+ Invoke((Action)(() =>
186
+
187
+ {
188
+
189
+ txtURL.Text = ""; //TODO postで送られたときにデータを格納
190
+
191
+ }));
192
+
193
+ }
194
+
195
+
196
+
197
+ //textファイルのパス
198
+
199
+ string path = @"C:\Users\TESTHTTP.txt";
200
+
201
+ if (File.Exists(path))
202
+
203
+ {
204
+
205
+ //textファイルの中身をバイト型の配列に格納
206
+
207
+ byte[] data = File.ReadAllBytes(path);
208
+
209
+ //dataの中身をRESPONSEとして返す
210
+
211
+ res.OutputStream.Write(data, 0, data.Length);
212
+
213
+ }
214
+
215
+ res.Close();
216
+
217
+
218
+
219
+ }
220
+
221
+ }
222
+
223
+
224
+
225
+ }
226
+
227
+ }
228
+
229
+
58
230
 
59
231
 
60
232
 
61
233
  ```
62
234
 
63
- コンパイルエラー
64
-
65
- ```
66
-
67
-
68
-
69
- ### 該当のソースコード
70
-
71
-
72
-
73
- ```C#
74
-
75
- using System;
76
-
77
- using System.Collections.Generic;
78
-
79
- using System.ComponentModel;
80
-
81
- using System.Data;
82
-
83
- using System.Drawing;
84
-
85
- using System.Linq;
86
-
87
- using System.Text;
88
-
89
- using System.Threading.Tasks;
90
-
91
- using System.Windows.Forms;
92
-
93
- using System.Threading;
94
-
95
- using System.Net.Sockets;
96
-
97
- using System.Net;
98
-
99
- using System.Diagnostics;
100
-
101
- using System.Windows;
102
-
103
- using System.IO;
104
-
105
- using System.Net.Http;
106
-
107
- using System.Net.WebSockets;
108
-
109
- using System.Web;
110
-
111
- using System.Collections.Specialized;
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
- namespace webServerTest
122
-
123
- {
124
-
125
- public partial class Form1 : Form
126
-
127
- {
128
-
129
- public Form1()
130
-
131
- {
132
-
133
- InitializeComponent();
134
-
135
- }
136
-
137
-
138
-
139
- private void button1_Click(object sender, EventArgs e)
140
-
141
- {
142
-
143
- Thread thread = new Thread(connect);
144
-
145
- thread.Start();
146
-
147
- }
148
-
149
-
150
-
151
- private void connect()
152
-
153
- {
154
-
155
-
156
-
157
- HttpListener listtner = new HttpListener();
158
-
159
- //とりあえずローカル
160
-
161
- listtner.Prefixes.Add("http://*:80/");
162
-
163
- listtner.Start();
164
-
165
-
166
-
167
-
168
-
169
- while (true)
170
-
171
- {
172
-
173
- HttpListenerContext context = listtner.GetContext();
174
-
175
-
176
-
177
- HttpListenerRequest req = context.Request;
178
-
179
- HttpListenerResponse res = context.Response;
180
-
181
-
182
-
183
- //クライアントからの接続メソッド?判別
184
-
185
- string str = req.HttpMethod;
186
-
187
-
188
-
189
-
190
-
191
- if(str == "POST")
192
-
193
- {
194
-
195
- Invoke((Action)(() =>
196
-
197
- {
198
-
199
- txtURL.Text = ""; //TODO postで送られたときにデータを格納
200
-
201
- }));
202
-
203
- }
204
-
205
-
206
-
207
- //textファイルのパス
208
-
209
- string path = @"C:\Users\TESTHTTP.txt";
210
-
211
- if (File.Exists(path))
212
-
213
- {
214
-
215
- //textファイルの中身をバイト型の配列に格納
216
-
217
- byte[] data = File.ReadAllBytes(path);
218
-
219
- //dataの中身をRESPONSEとして返す
220
-
221
- res.OutputStream.Write(data, 0, data.Length);
222
-
223
- }
224
-
225
- res.Close();
226
-
227
-
228
-
229
- }
230
-
231
- }
232
-
233
-
234
-
235
- }
236
-
237
- }
238
-
239
-
240
-
241
-
242
-
243
- ```
244
-
245
235
 
246
236
 
247
237
  ### 補足情報(FW/ツールのバージョンなど)