如何使用 MVC WebService/Method 从 IPinfodb.com 获取 Json 数据

发布于 2024-09-25 02:27:29 字数 124 浏览 3 评论 0原文

我想根据IP获取用户的位置。当用户进入网站时,

我曾经使用经典 asp 中的 XMLHTTPREquest 来执行此操作,

如何使用 .net MVC 执行此操作。

我是 .net 新手

I want to get User's Location based on IP. When user enters website

I used to do it with XMLHTTPREquest in classic asp

how to do it with .net MVC.

I am new to .net

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

-黛色若梦 2024-10-02 02:27:29

WebClientJavaScriptSerializer 类可以帮助您。与往常一样,首先定义一个代表模型的类:

public class LocationResult
{
    public string Ip { get; set; }
    public string Status { get; set; }
    public string CountryCode { get; set; }
    public string CountryName { get; set; }
    public string RegionCode { get; set; }
    public string RegionName { get; set; }
    public string City { get; set; }
    public string ZipPostalCode { get; set; }
    public float Latitude { get; set; }
    public float Longitude { get; set; }
}

然后调用服务并将 JSON 结果反序列化回您的模型:

public LocationResult GetLocationInfo(string ip)
{
    using (var client = new WebClient())
    {
        // query the online service provider and fetch the JSON
        var json = client.DownloadString(
            "http://ipinfodb.com/ip_query.php?ip=" + ip + 
            "&output=json&timezone=false"
        );

        // use the JavaScriptSerializer to deserialize the JSON
        // result back to a LocationResult
        var serializer = new JavaScriptSerializer();
        return serializer.Deserialize<LocationResult>(json);
    }
}

A combination of WebClient and JavaScriptSerializer classes could help you. As always start by defining a class that will represent your model:

public class LocationResult
{
    public string Ip { get; set; }
    public string Status { get; set; }
    public string CountryCode { get; set; }
    public string CountryName { get; set; }
    public string RegionCode { get; set; }
    public string RegionName { get; set; }
    public string City { get; set; }
    public string ZipPostalCode { get; set; }
    public float Latitude { get; set; }
    public float Longitude { get; set; }
}

and then call the service and deserialize the JSON result back to your model:

public LocationResult GetLocationInfo(string ip)
{
    using (var client = new WebClient())
    {
        // query the online service provider and fetch the JSON
        var json = client.DownloadString(
            "http://ipinfodb.com/ip_query.php?ip=" + ip + 
            "&output=json&timezone=false"
        );

        // use the JavaScriptSerializer to deserialize the JSON
        // result back to a LocationResult
        var serializer = new JavaScriptSerializer();
        return serializer.Deserialize<LocationResult>(json);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文