我需要调用这个APIfreegeoip.net/xml/userIpAddress
在我的控制器得到它的数据。
这是我的控制器
public ActionResult Index(string language)
{
if (String.IsNullOrWhiteSpace(language) == false)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
}
else if (String.IsNullOrWhiteSpace(language))
{
string userIpAddress = this.Request.UserHostAddress;
//here how I can call freegeoip.net/xml/userIpAddress
}
}
以下是XML响应的外观:
<Response>
<IP>4.2.2.2</IP>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode/>
<RegionName/>
<City/>
<ZipCode/>
<TimeZone/>
<Latitude>37.751</Latitude>
<Longitude>-97.822</Longitude>
<MetroCode>0</MetroCode>
</Response>
使用HttpClient
:
public async Task<ActionResult> Index(string language)
{
if (String.IsNullOrWhiteSpace(language) == false)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
}
else if (String.IsNullOrWhiteSpace(language))
{
string userIpAddress = this.Request.UserHostAddress;
var client = new HttpClient
{
BaseAddress = new Uri("http://freegeoip.net/xml/")
};
var response = await client.GetAsync(userIpAddress);
var content = await response.Content.ReadAsStringAsync();
var result = (Response)new XmlSerializer(typeof(Response)).Deserialize(new StringReader(content));
// do stuff
}
...
}
[XmlRoot(ElementName = "Response")]
public class Response
{
[XmlElement(ElementName = "IP")]
public string IP { get; set; }
[XmlElement(ElementName = "CountryCode")]
public string CountryCode { get; set; }
[XmlElement(ElementName = "CountryName")]
public string CountryName { get; set; }
[XmlElement(ElementName = "RegionCode")]
public string RegionCode { get; set; }
[XmlElement(ElementName = "RegionName")]
public string RegionName { get; set; }
[XmlElement(ElementName = "City")]
public string City { get; set; }
[XmlElement(ElementName = "ZipCode")]
public string ZipCode { get; set; }
[XmlElement(ElementName = "TimeZone")]
public string TimeZone { get; set; }
[XmlElement(ElementName = "Latitude")]
public string Latitude { get; set; }
[XmlElement(ElementName = "Longitude")]
public string Longitude { get; set; }
[XmlElement(ElementName = "MetroCode")]
public string MetroCode { get; set; }
}
谢谢你的快速反应。
问题内容: 我写了一个过滤器函数,它将根据您传递的参数返回数据。我希望控制器具有相同的功能。是否可以在控制器中重用过滤器功能? 到目前为止,这是我尝试过的: 问题答案: 将 $ filter 注入控制器 然后,无论您想在哪里使用该过滤器,都可以像这样使用它: 如果要将参数传递给该过滤器,请使用单独的括号进行处理: 您要过滤的数组在哪里,并且是用于过滤的对象。
我一直在尝试将文件从rest客户端发送到我的spring控制器。在控制器中,我使用“@requestParam(“file”)MultipartFile file”从客户端获取文件,并使用REST服务注释进行注释,如下所示 我总是得到415媒体类型不支持。在上面的方法中,如果我不给多部分,它给我的结果是完成了,但不是多部分。 所以我可以知道如何发送文件到我的Spring控制器?
我接管了一个web应用程序,它将web api和mvc控制器分为两个项目。Web Api网站有自己的基本Api url localhost:0000,mvc网站有localhost:1111。我正在生成一个通过电子邮件发送的点击链接,目的是让用户返回mvc网站上的注册页面。现在,我唯一的选择是从webApi控制器执行此操作,但是当我使用Url生成链接时。链接或Url。内容我总是得到WebApi l
问题内容: 使用SceneBuilder。我有2个阶段,每个阶段都有一个控制器: , 。 Stage1Controller: Stage2Controller: 这是使用2种方法 (称为in 方法)将这两个fxml文件加载到Main.java类中的方式: 该方法在第一阶段中用作方法,它在两个阶段都转换视图。 如何输入方法?谢谢 问题答案: “快速又脏”的方法是给的引用: 现在在您的主应用程序中:
我对Spring框架是完全陌生的。我有一个任务是在Spring上制作电话簿应用程序。我需要登记和授权,还有我的电话簿。我有两个控制器,第一个是控制授权和注册的UserController 当我尝试进行身份验证或注册时。新用户我有这样的错误: NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalStateException:映射到HTTP路径“HT