2017-10-30 16 views
-1

申し訳ありませんが、私はこの質問をする方法を本当に知りません、基本的にはhttp.postに属性 'content-type'が 'text/xml'に設定されたカスタムヘッダー。 残念ながら、それは私にエラーポスト500(内部サーバーエラー)を与えます。 しかし、属性 'content-type'を 'application/json'に設定すると、すべてが完全に正常に動作しています。あなたが送信するデータの種類をエンドポイントに通知しているコンテンツ型で'content-type'の角2ヘッダ: 'text/xml'、httpポストが動作しない

getXMLHeaders(): Headers { 
    const headers = new Headers({ 
     'Authorization': `Basic ${localStorage.getItem('APIkey')}`, 
     'content-type': 'text' 
    }); 
    return headers; 
} 



getOptionsXML(): RequestOptions { 
    const options = new RequestOptions({headers: this.getXMLHeaders()}); 
    return options; 
} 



writeXML(file: string, xml: any, http: Http): boolean { 
    try { 
     const options = this.getOptionsXML(); 
     const body = { 
      'path': file, 
      'body': xml 
     }; 
     console.log(body); 
     const readFile = http.post(LOCAL_API_ADDRESS 
      + localStorage.getItem('APIport') 
      + '/local-api/write-File/', body, options) 

      .toPromise(); 
     readFile.then(res => { 
     }) 
      .catch(err => { 
       this.loggerServer.error(http, 'writeXML() promise error: ' 
        + err.message); 
      }); 

     return true; 
    } catch (err) { 
     this.loggerServer.error(http, 'FileManager writeXML: ' + err.message); 
     return false; 
    } 
} 
+1

私は、これはあなたのせいではないと思います。あなたが正しいヘッダを提供していれば、サーバかもしれません。郵便配達員に挑戦しましたかあなたのコンテンツタイプは単に ''content-type' ':' text''です。あなたが呼び出している' text/xml'または 'application/xml' – LogicDev

+0

APIを試してみることはXMLの代わりにJSONを受け付けるだけです。 –

+0

私はtext/xmlとapplication/xmlを試しましたが、私は同じ動作をしました、郵便配達員は何ですか? – alexandre

答えて

0

: はここに私のコードです。 XML(text/xml、application/xml)で、サーバーがこの形式を受け入れていないとすれば、結果は500になります。エンドポイントはJSON(application/json)のみを受け入れているようです。

は、単にあなたがこの形式でメッセージを送信しようとしている話す:

<content> 
    <param Name="ParamA">TextA</text> 
</content> 

サーバーにのみ、このフォーマットを受け入れながら:

{ 
    "ParamA":"TextA" 
} 
+0

あなたの答えに感謝します。 ! – alexandre

関連する問題