私はオブジェクトをアプリケーションに送り、そこから同じオブジェクトを受け取りたいと思います。私は2つのアプリケーションの間でメッセージクラスを送信し、受信したいと思う。webrequest経由でオブジェクトを送信し、Webサービスで受信
public class DefaultController : Controller
{
// GET: Default
[HttpPost]
public Bussiness.Message.CoreMessage Index(Bussiness.Message.CoreMessage coreMessage)
{
Puller.Bussiness.ServiceMessages serviceMessage = new Bussiness.ServiceMessages();
var file = serviceMessage.CreateRequest(coreMessage);
return file;
}
}
メッセージクラスserilizeとサーバーに送信が、サーバにそれがnullである:
[Serializable]
public struct Messages
{
public string ErrorCode { get; set; }
public string ErrorMessage { get; set; }
public MessageType? messageType { get; set; }
public SendMessageType? sendMessageType { get; set; }
public string UserCode { get; set; }
public DateTime MessageDateTime { get; set; }
public MethodName methodName { get; set; }
public int? FieldsCount { get; set; }
public List<KeyValue> Values { get; set; }
}
public struct KeyValue
{
public string key { get; set; }
public string value { get; set; }
}
public enum MessageType
{
Request,
Reply,
Reject
}
public enum MethodName
{
FindShebaFromDeposit = 1,
BalanceInquery = 2,
CheckBill = 3,
BillPayment = 4,
GetDepositList = 5,
NormalTransfer = 6,
GetPersonInfoFromDeposit = 7
}
public enum SendMessageType
{
way2,
way3
}
public void POST(Messages messages)
{
//Serialize the object into stream before sending it to the remote server
MemoryStream memmoryStream = new MemoryStream();
BinaryFormatter binayformator = new BinaryFormatter();
binayformator.Serialize(memmoryStream, messages);
//Cretae a web request where object would be sent
WebRequest objWebRequest = WebRequest.Create("http://localhost:13060/Default/Index");
objWebRequest.Method = "POST";
objWebRequest.ContentLength = memmoryStream.Length;
// Create a request stream which holds request data
Stream reqStream = objWebRequest.GetRequestStream();
//Write the memory stream data into stream object before send it.
byte[] buffer = new byte[memmoryStream.Length];
int count = memmoryStream.Read(buffer, 0, buffer.Length);
reqStream.Write(buffer, 0, buffer.Length);
//Send a request and wait for response.
try
{
WebResponse objResponse = objWebRequest.GetResponse();
//Get a stream from the response.
Stream streamdata = objResponse.GetResponseStream();
//read the response using streamreader class as stream is read by reader class.
StreamReader strReader = new StreamReader(streamdata);
string responseData = strReader.ReadToEnd();
}
catch (WebException ex)
{
throw ex;
}
}
、ここでは私のサーバーのコードは次のとおりです。ここで私のクライアントコードはありますか?
バイナリ形式で投稿しています。代わりにJSONでメッセージをシリアライズして投稿する –
サンプルを紹介してもらえますか? – behzad