回答編集履歴

7

追記

2016/03/07 20:27

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -136,4 +136,12 @@
136
136
 
137
137
 
138
138
 
139
+ (Noriyuki_sasaさんの回答へのコメント参照)
140
+
141
+
142
+
139
143
  ![Chrome](56f583d9d3d86cd14c667ad086f7114f.png)
144
+
145
+
146
+
147
+ 今回は**HTTP通信は成功している**(少なくとも404というHTTPステータスは返ってきている)ので,TLSが原因のエラーではありません.TLSでエラーが起こった場合,HTTPステータスすら取得出来ません.

6

追記

2016/03/07 20:26

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -10,11 +10,53 @@
10
10
 
11
11
 
12
12
 
13
- という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.**404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.**
13
+ という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.**404 Not Found は,あなたがURLまたはパラメータの一部を間違えていることに起因する可能性が高いです.** (また例として用いるドメインには `example.com` を用いるべきです)
14
14
 
15
15
 
16
16
 
17
+ 現時点で明らかにおかしいと言えるのは以下の2点です.
18
+
19
+
20
+
21
+ 一点目,XML文字列がストリームコンテキストの`header`オプションに指定されています.ここにくるのは`Content-Length: XXX` といったHTTPヘッダのみです.XMLのデータが入ることは基本的にあり得ません.(また`$header`と`$body`も意図に反して入れ替わってしまっているような気がするんですが…)
22
+
23
+
24
+
25
+ 二点目,XMLの構造がめちゃくちゃです.fagaiさんのリンク先の情報によれば,SOAPリクエストは以下のようなフォーマットをとるはずです.改行区切りで後ろに続いているほうがPOSTされるXMLとなりますが,提示されているXMLはこの形式に従っているように見えません.
26
+
27
+
28
+
29
+ ```http
30
+
31
+ POST /MySERVER/myWSDLservice.asmx HTTP/1.1
32
+
33
+ Host: connection.mywebsite.com
34
+
17
- (また例として用いるドメインには `example.com` を用いるべきです)
35
+ Content-Type: text/xml; charset=utf-8
36
+
37
+ Content-Length: length
38
+
39
+ SOAPAction: "http://connection.mywebsite.com/MySERVER/GetCarType"
40
+
41
+
42
+
43
+ <?xml version="1.0" encoding="utf-8"?>
44
+
45
+ <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
46
+
47
+ <soap:Body>
48
+
49
+ <GetCarType xmlns="http://connection.mywebsite.com/MySERVER/">
50
+
51
+ <IDNumber>string</IDNumber>
52
+
53
+ </GetCarType>
54
+
55
+ </soap:Body>
56
+
57
+ </soap:Envelope>
58
+
59
+ ```
18
60
 
19
61
 
20
62
 

5

SSLについての補足画像を追加

2016/03/07 15:23

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -87,3 +87,11 @@
87
87
  }
88
88
 
89
89
  ```
90
+
91
+
92
+
93
+ # cURLの`CURLOPT_SSL_VERIFYPEER` についての補足画像
94
+
95
+
96
+
97
+ ![Chrome](56f583d9d3d86cd14c667ad086f7114f.png)

4

書式の改善

2016/03/07 15:02

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -1,4 +1,4 @@
1
- 本題
1
+ # 本題
2
2
 
3
3
 
4
4
 
@@ -14,15 +14,11 @@
14
14
 
15
15
 
16
16
 
17
- (また例として用いるドメインには `example.com` を用いるべき)
17
+ (また例として用いるドメインには `example.com` を用いるべきです)
18
18
 
19
19
 
20
20
 
21
- ----
22
-
23
-
24
-
25
- 蛇足
21
+ # 蛇足
26
22
 
27
23
 
28
24
 
@@ -48,7 +44,7 @@
48
44
 
49
45
 
50
46
 
51
- $client = @new \SoapClient('https://www.test.org?wsdl');
47
+ $client = @new \SoapClient('https://example.com/?wsdl');
52
48
 
53
49
  if (!$client) {
54
50
 

3

書式の改善

2016/03/07 14:54

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -10,9 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.
13
+ という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.**404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.**
14
-
15
- 404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.
16
14
 
17
15
 
18
16
 

2

書式の改善

2016/03/07 14:52

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -1,3 +1,33 @@
1
+ 【本題】
2
+
3
+
4
+
5
+ まず
6
+
7
+
8
+
9
+ > 下記のように記述しましたが404エラーが帰ってきてしまいます。
10
+
11
+
12
+
13
+ という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.
14
+
15
+ 404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.
16
+
17
+
18
+
19
+ (また例として用いるドメインには `example.com` を用いるべき)
20
+
21
+
22
+
23
+ ----
24
+
25
+
26
+
27
+ 【蛇足】
28
+
29
+
30
+
1
31
  この用途では `SoapClient`が一番使いやすいと思うんですが…
2
32
 
3
33
  XMLを書かずに,あたかも普通のPHPのコードを書いているような気分で書けますよ.

1

例をわかりやすく

2016/03/07 14:51

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -5,6 +5,8 @@
5
5
 
6
6
 
7
7
  - [PHP Manual - SoapClient](http://php.net/manual/ja/class.soapclient.php)
8
+
9
+ - [PHP SOAP Extension in PHP 5.3.1](http://www.herongyang.com/WSDL/PHP-SOAP-Extension-in-PHP-531.html)
8
10
 
9
11
  - [【php】SOAPする at softelメモ](https://www.softel.co.jp/blogs/tech/archives/5129)
10
12
 
@@ -28,7 +30,23 @@
28
30
 
29
31
  }
30
32
 
33
+ $result = $client->doSomethingAction(
34
+
31
- $result = $client->doSomethingAction('This is the value for "param01"');
35
+ 'Hello', // (type: "string"; name: "param0")
36
+
37
+ 'World', // (type: "string"; name: "param1")
38
+
39
+ new \SoapVar('2016-03-07', XSD_DATE) // (type: "date"; name: "param2")
40
+
41
+ new \SoapParam(
42
+
43
+ new \SoapVar('2015-12-25', XSD_DATE), // (type: "date")
44
+
45
+ "christmas" // (name: "christmas")
46
+
47
+ )
48
+
49
+ );
32
50
 
33
51
  var_dump($result);
34
52