mirror of
https://github.com/osukey/osukey.git
synced 2025-07-01 08:20:00 +09:00
Set UserAgent for API requests
This commit is contained in:
@ -14,7 +14,7 @@ namespace osu.Game.Online.API
|
|||||||
/// <typeparam name="T">Type of the response (used for deserialisation).</typeparam>
|
/// <typeparam name="T">Type of the response (used for deserialisation).</typeparam>
|
||||||
public abstract class APIRequest<T> : APIRequest
|
public abstract class APIRequest<T> : APIRequest
|
||||||
{
|
{
|
||||||
protected override WebRequest CreateWebRequest() => new JsonWebRequest<T>(Uri);
|
protected override WebRequest CreateWebRequest() => new OsuJsonWebRequest<T>(Uri);
|
||||||
|
|
||||||
public T Result => ((JsonWebRequest<T>)WebRequest).ResponseObject;
|
public T Result => ((JsonWebRequest<T>)WebRequest).ResponseObject;
|
||||||
|
|
||||||
@ -30,6 +30,16 @@ namespace osu.Game.Online.API
|
|||||||
/// This will be scheduled to the API's internal scheduler (run on update thread automatically).
|
/// This will be scheduled to the API's internal scheduler (run on update thread automatically).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public new event APISuccessHandler<T> Success;
|
public new event APISuccessHandler<T> Success;
|
||||||
|
|
||||||
|
private class OsuJsonWebRequest<U> : JsonWebRequest<U>
|
||||||
|
{
|
||||||
|
public OsuJsonWebRequest(string uri)
|
||||||
|
: base(uri)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string UserAgent => "osu!";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -39,7 +49,7 @@ namespace osu.Game.Online.API
|
|||||||
{
|
{
|
||||||
protected abstract string Target { get; }
|
protected abstract string Target { get; }
|
||||||
|
|
||||||
protected virtual WebRequest CreateWebRequest() => new WebRequest(Uri);
|
protected virtual WebRequest CreateWebRequest() => new OsuWebRequest(Uri);
|
||||||
|
|
||||||
protected virtual string Uri => $@"{API.Endpoint}/api/v2/{Target}";
|
protected virtual string Uri => $@"{API.Endpoint}/api/v2/{Target}";
|
||||||
|
|
||||||
@ -152,6 +162,16 @@ namespace osu.Game.Online.API
|
|||||||
[JsonProperty("error")]
|
[JsonProperty("error")]
|
||||||
public string ErrorMessage { get; set; }
|
public string ErrorMessage { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class OsuWebRequest : WebRequest
|
||||||
|
{
|
||||||
|
public OsuWebRequest(string uri)
|
||||||
|
: base(uri)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string UserAgent => "osu!";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class APIException : InvalidOperationException
|
public class APIException : InvalidOperationException
|
||||||
|
Reference in New Issue
Block a user