0

我是 MonoTouch 的新手,一直在努力尝试发布到将 JSON 返回给我的网站。在 MonoTouch 示例站点中,有剪切和粘贴的示例,但我找不到工作项目。RestSharp 看起来不错,但我一直找不到任何包含工作示例的 IOS 项目。我知道这应该很简单,只需剪切和粘贴代码,System.dll 具有 System.Net 名称空间,但对我来说,我不断得到未解决的引用。我可以运行的一个工作示例将有很长的路要走。哪怕只是一个微不足道的例子。我可以添加我自己的所有复杂的东西。

谢谢,

4

1 回答 1

2

这是我在 System.JSON 命名空间中使用的代码片段:

public JsonValue Post(string address) {

    JsonValue value = null;
    try
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(address);
        req.Method = "POST";

        JsonObject postJson = new JsonObject();
        foreach (KeyValuePair<string, string> val in this.FormParams) 
            postJson.Add(new KeyValuePair<string, JsonValue>(val.Key, new JsonPrimitive(val.Value)));

        byte[] postData = new ASCIIEncoding().GetBytes(postJson.ToString());

        req.ContentLength = postData.Length;

        Stream dataStream = req.GetRequestStream();
        dataStream.Write(postData, 0, postData.Length);
        dataStream.Close();

        using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) 
        {
            using (StreamReader reader = new StreamReader (resp.GetResponseStream ())) 
            {
                value = JsonValue.Load(reader);
            }
        }
    }
    catch (Exception ex)
    {
        _lastError = ex.Message;
        Log.Error(String.Format("Exception on JsonHandler::Post(action): {0}", ex.Message)); 
    }
    return value;
}

其中“action”是要访问的地址,例如http://service-address.com/json/users 而“this.FormParams”是一个包含 post-data 的列表。它将返回一个可以包含各种 JSON 对象的 JsonValue。

于 2012-08-03T14:49:05.090 回答