私は受信ページを設定して、JSON文字列としてフォーマットされ、外部サービスから私たちに送信されるデータを収集しようとしています。私たちのデータベース。ASPX-ageのクラスインライン宣言
簡潔にするために、私はこの外部サービスにリンクされた1つのページにすべてのコードを保存したいと思います。
私はJSON文字列を受け取ることができますが、クラスを受け入れないため、逆シリアル化できないようです。
私のコードは以下の通りです。 デバッグのために、データを外部ログにエクスポートしています。 日付が追加されない場合は、問題の原因となっているメッセージに特別なものがある場合は、ログを表示しようとすることができます。
コードからクラスを削除すると、ページが正しく読み込まれます。 クラスを入れた場合、エラーが発生します(オンラインWebサーバーを使用しているため表示されません)。
誰でもこのコードが間違っていることを知っていますか?
<%@ Page Language="C#" %>
<%@ import namespace="System.Data"%>
<%@ import namespace="System.Data.SqlClient"%>
<%@ import namespace="System.IO" %>
<%@ import namespace="System.Web" %>
<%@ import namespace="System.Web.Script.Serialization" %>
<%
public class MessageClass
{
public string type;
public string text;
public string url;
public string user_name;
public int timestamp;
}
// GET THE CONTENT THAT WAS POSTED
//StreamReader reader = new StreamReader(HttpContext.Current.Request.InputStream);
//string requestFromPost = reader.ReadToEnd();
string requestFromPost = "{type:'image',url:'https://someservice.com/picture.jpg',user_name:'user',timestamp:1511772572733}";
Response.Write(requestFromPost);
// BACKUP THE MESSAGE IN A LOG
StreamWriter sw;
try
{
sw = File.AppendText(Server.MapPath(".\\") + "test.log");
sw.WriteLine("[" + DateTime.Now.ToString("HH:mm:ss") +"] " + requestFromPost);
sw.Flush();
sw.Close();
}
catch(Exception ex)
{
// IGNORE
}
StringBuilder sb = new StringBuilder();
JavaScriptSerializer ser = new JavaScriptSerializer();
//var response = ser.Deserialize<MessageClass>(requestFromPost);
//Response.Write(response.url);
// DATABASE STUFF GOES BELOW
%>
本当にハイタムですが、それ以降はそれをDateTimeに変更する必要がありましたが、私はそれを認識していました。 – Cainnech