2017-03-14 11 views
-2

私はC#とVisual BasicのAPIを持っています。 JSON形式の情報をC#のAPIからVisual BasicのAPIに送信する必要があります。うまくいけばPOST動詞を使用しています。状況の文脈はこのようなものです。モバイルアプリケーションはC#でAPIに情報を送信し、APIはサーバーにあるデータベースにデータを保存し、情報が正しい場合はC#のAPIがVisual Basic APIにデータを送信し、それを別のサーバーに保存する必要があります。誰もがC#からVisual Basicにデータを送るのを知っていますか?ありがとう。C#をVisual Basic APIに送信

+0

問題点は何ですか? – Mahdi

+0

私はC#からVisual Basicにデータを送信する方法を見つけることはありません。 WebRequestライブラリを使用していて、GETを使用してURLにパラメータを追加した場合にのみ動作し、POSTを使用すると正常に動作しない場合は –

+0

なぜVBAコードを使用するのですか?どんなフォーマットでも両方のサーバーに保存するだけです。 – Comintern

答えて

2

1つのAPIがC#にあり、もう1つのAPIがVBであっても問題ありません。あなたが送信しているjsonが有効である限り(jsonlint.comで送信したjsonを検証してみてください)、APIにオブジェクトがマップされていればすべてがうまくいくはずです。 エンドポイントapiがリクエストを受け付けていないようです。

0

これは私のC#のコード

try 
     { 
      var request = (HttpWebRequest)WebRequest.Create(URL); 
      request.ContentType = "application/json"; 
      request.Method = "POST"; 

      using (var streamWriter = new StreamWriter(request.GetRequestStream())) 
      { 
       string json = new JavaScriptSerializer().Serialize(new 
       { 
        var1 = "example1", 
        var2 = "example2" 
       }); 

       streamWriter.Write(json); 
      } 

      var response = (HttpWebResponse)request.GetResponse(); 
      using (var streamReader = new StreamReader(response.GetResponseStream())) 
      { 
       var result = streamReader.ReadToEnd(); 
       return Request.CreateResponse(HttpStatusCode.OK, new { Respuesta = result }, "application/json"); 
      } 
     } 
     catch(Exception e) 
     { 
      return Request.CreateResponse(HttpStatusCode.InternalServerError, new { Respuesta = e.ToString() }, "application/json"); 
     } 
    } 

であり、これは、Visual Basic

Public Function PostValue(ByVal json as String) 
    return json 
End Function 

ザッツすべての私の関数です。そして、私にこのエラーを投げてください。 { "Respuesta": "System.Net.WebException:System.Net.HttpWebRequest.GetResponse()でリモートサーバーからエラーが返されました:(404)が見つかりません。\ r \ n \ n Servicios.Controllers.SAPEnviarFacturasController.SAPEnviarFacturas()in C:\ TFS \ Servicios \ Controllers \ SAPEnviarFacturasController.cs:行44 " }