回答編集履歴
7
追記
answer
CHANGED
@@ -67,4 +67,8 @@
|
|
67
67
|
|
68
68
|
# cURLの`CURLOPT_SSL_VERIFYPEER` についての補足画像
|
69
69
|
|
70
|
+
(Noriyuki_sasaさんの回答へのコメント参照)
|
71
|
+
|
70
|
-

|
72
|
+

|
73
|
+
|
74
|
+
今回は**HTTP通信は成功している**(少なくとも404というHTTPステータスは返ってきている)ので,TLSが原因のエラーではありません.TLSでエラーが起こった場合,HTTPステータスすら取得出来ません.
|
6
追記
answer
CHANGED
@@ -4,10 +4,31 @@
|
|
4
4
|
|
5
5
|
> 下記のように記述しましたが404エラーが帰ってきてしまいます。
|
6
6
|
|
7
|
-
という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.**404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.**
|
7
|
+
という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.**404 Not Found は,あなたがURLまたはパラメータの一部を間違えていることに起因する可能性が高いです.** (また例として用いるドメインには `example.com` を用いるべきです)
|
8
8
|
|
9
|
-
|
9
|
+
現時点で明らかにおかしいと言えるのは以下の2点です.
|
10
10
|
|
11
|
+
一点目,XML文字列がストリームコンテキストの`header`オプションに指定されています.ここにくるのは`Content-Length: XXX` といったHTTPヘッダのみです.XMLのデータが入ることは基本的にあり得ません.(また`$header`と`$body`も意図に反して入れ替わってしまっているような気がするんですが…)
|
12
|
+
|
13
|
+
二点目,XMLの構造がめちゃくちゃです.fagaiさんのリンク先の情報によれば,SOAPリクエストは以下のようなフォーマットをとるはずです.改行区切りで後ろに続いているほうがPOSTされるXMLとなりますが,提示されているXMLはこの形式に従っているように見えません.
|
14
|
+
|
15
|
+
```http
|
16
|
+
POST /MySERVER/myWSDLservice.asmx HTTP/1.1
|
17
|
+
Host: connection.mywebsite.com
|
18
|
+
Content-Type: text/xml; charset=utf-8
|
19
|
+
Content-Length: length
|
20
|
+
SOAPAction: "http://connection.mywebsite.com/MySERVER/GetCarType"
|
21
|
+
|
22
|
+
<?xml version="1.0" encoding="utf-8"?>
|
23
|
+
<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/">
|
24
|
+
<soap:Body>
|
25
|
+
<GetCarType xmlns="http://connection.mywebsite.com/MySERVER/">
|
26
|
+
<IDNumber>string</IDNumber>
|
27
|
+
</GetCarType>
|
28
|
+
</soap:Body>
|
29
|
+
</soap:Envelope>
|
30
|
+
```
|
31
|
+
|
11
32
|
# 蛇足
|
12
33
|
|
13
34
|
この用途では `SoapClient`が一番使いやすいと思うんですが…
|
5
SSLについての補足画像を追加
answer
CHANGED
@@ -42,4 +42,8 @@
|
|
42
42
|
var_dump($e->getMessage());
|
43
43
|
|
44
44
|
}
|
45
|
-
```
|
45
|
+
```
|
46
|
+
|
47
|
+
# cURLの`CURLOPT_SSL_VERIFYPEER` についての補足画像
|
48
|
+
|
49
|
+

|
4
書式の改善
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# 本題
|
2
2
|
|
3
3
|
まず
|
4
4
|
|
@@ -6,12 +6,10 @@
|
|
6
6
|
|
7
7
|
という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.**404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.**
|
8
8
|
|
9
|
-
(また例として用いるドメインには `example.com` を用いるべき)
|
9
|
+
(また例として用いるドメインには `example.com` を用いるべきです)
|
10
10
|
|
11
|
-
|
11
|
+
# 蛇足
|
12
12
|
|
13
|
-
【蛇足】
|
14
|
-
|
15
13
|
この用途では `SoapClient`が一番使いやすいと思うんですが…
|
16
14
|
XMLを書かずに,あたかも普通のPHPのコードを書いているような気分で書けますよ.
|
17
15
|
|
@@ -23,7 +21,7 @@
|
|
23
21
|
<?php
|
24
22
|
try {
|
25
23
|
|
26
|
-
$client = @new \SoapClient('https://
|
24
|
+
$client = @new \SoapClient('https://example.com/?wsdl');
|
27
25
|
if (!$client) {
|
28
26
|
$error = error_get_last();
|
29
27
|
throw new \Exception($error['message']);
|
3
書式の改善
answer
CHANGED
@@ -4,8 +4,7 @@
|
|
4
4
|
|
5
5
|
> 下記のように記述しましたが404エラーが帰ってきてしまいます。
|
6
6
|
|
7
|
-
という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.
|
7
|
+
という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.**404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.**
|
8
|
-
404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.
|
9
8
|
|
10
9
|
(また例として用いるドメインには `example.com` を用いるべき)
|
11
10
|
|
2
書式の改善
answer
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
【本題】
|
2
|
+
|
3
|
+
まず
|
4
|
+
|
5
|
+
> 下記のように記述しましたが404エラーが帰ってきてしまいます。
|
6
|
+
|
7
|
+
という悩みであれば,`https://www.test.org?wsdl` などとして茶化さずに本物のURLを出すべきです.
|
8
|
+
404 Not Found は,あなたがURLの一部を間違えていることに起因する可能性が高いです.
|
9
|
+
|
10
|
+
(また例として用いるドメインには `example.com` を用いるべき)
|
11
|
+
|
12
|
+
----
|
13
|
+
|
14
|
+
【蛇足】
|
15
|
+
|
1
16
|
この用途では `SoapClient`が一番使いやすいと思うんですが…
|
2
17
|
XMLを書かずに,あたかも普通のPHPのコードを書いているような気分で書けますよ.
|
3
18
|
|
1
例をわかりやすく
answer
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
XMLを書かずに,あたかも普通のPHPのコードを書いているような気分で書けますよ.
|
3
3
|
|
4
4
|
- [PHP Manual - SoapClient](http://php.net/manual/ja/class.soapclient.php)
|
5
|
+
- [PHP SOAP Extension in PHP 5.3.1](http://www.herongyang.com/WSDL/PHP-SOAP-Extension-in-PHP-531.html)
|
5
6
|
- [【php】SOAPする at softelメモ](https://www.softel.co.jp/blogs/tech/archives/5129)
|
6
7
|
|
7
8
|
```php
|
@@ -13,7 +14,15 @@
|
|
13
14
|
$error = error_get_last();
|
14
15
|
throw new \Exception($error['message']);
|
15
16
|
}
|
17
|
+
$result = $client->doSomethingAction(
|
16
|
-
|
18
|
+
'Hello', // (type: "string"; name: "param0")
|
19
|
+
'World', // (type: "string"; name: "param1")
|
20
|
+
new \SoapVar('2016-03-07', XSD_DATE) // (type: "date"; name: "param2")
|
21
|
+
new \SoapParam(
|
22
|
+
new \SoapVar('2015-12-25', XSD_DATE), // (type: "date")
|
23
|
+
"christmas" // (name: "christmas")
|
24
|
+
)
|
25
|
+
);
|
17
26
|
var_dump($result);
|
18
27
|
|
19
28
|
} catch (\Exception $e) {
|