我正在使用像我这样的应用程序进行改造
static void Main(string[] args)
{
double[] xVal = new double[9]
{
...
};
double[] yVal = new double[9] {
...
};
double rsquared;
double yintercept;
double slope;
LinearRegression(xVal, yVal,0,9, out rsquared, out yintercept, out slope);
Console.WriteLine( yintercept + (slope*15));//15 is xvalue of future(no of day from 1)
Console.ReadKey();
}
public static void LinearRegression(double[] xVals, double[] yVals,
int inclusiveStart, int exclusiveEnd,
out double rsquared, out double yintercept,
out double slope)
{
Debug.Assert(xVals.Length == yVals.Length);
double sumOfX = 0;
double sumOfY = 0;
double sumOfXSq = 0;
double sumOfYSq = 0;
double ssX = 0;
double ssY = 0;
double sumCodeviates = 0;
double sCo = 0;
double count = exclusiveEnd - inclusiveStart;
for (int ctr = inclusiveStart; ctr < exclusiveEnd; ctr++)
{
double x = xVals[ctr];
double y = yVals[ctr];
sumCodeviates += x * y;
sumOfX += x;
sumOfY += y;
sumOfXSq += x * x;
sumOfYSq += y * y;
}
ssX = sumOfXSq - ((sumOfX * sumOfX) / count);
ssY = sumOfYSq - ((sumOfY * sumOfY) / count);
double RNumerator = (count * sumCodeviates) - (sumOfX * sumOfY);
double RDenom = (count * sumOfXSq - (sumOfX * sumOfX))
* (count * sumOfYSq - (sumOfY * sumOfY));
sCo = sumCodeviates - ((sumOfX * sumOfY) / count);
double meanX = sumOfX / count;
double meanY = sumOfY / count;
double dblR = RNumerator / Math.Sqrt(RDenom);
rsquared = dblR * dblR;
yintercept = meanY - ((sCo / ssX) * meanX);
slope = sCo / ssX;
}
发送请求后我正在呼叫
final OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.interceptors().add(new YourInterceptor());
final OkClient okClient = new OkClient(okHttpClient);
Builder restAdapterBuilder = new RestAdapter.Builder();
restAdapterBuilder.setClient(okClient).setLogLevel(LogLevel.FULL)
.setEndpoint("some url");
final RestAdapter restAdapter = restAdapterBuilder.build();
public class YourInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
// TODO Auto-generated method stub
Request request = chain.request();
if (request != null) {
Request.Builder signedRequestBuilder = request.newBuilder();
signedRequestBuilder.tag("taggiventorequest");
request = signedRequestBuilder.build();
request.tag();
}
return chain.proceed(request);
}
}
但是请求没有取消我收到了改造的回复 不知道为什么它没有取消我的要求
我需要排球,比如取消改装
答案 0 :(得分:6)
作为Retrofit API Spec,取消请求将包含在2.0版中。
取消()是收到回复后的无操作。在所有其他 在这种情况下,该方法会将任何回调设置为null(从而释放强大的 如果匿名声明,则引用封闭类) 请求对象死了。以后与请求的所有交互 对象将抛出异常。如果请求在等待 执行者将取消其未来,以便永远不会被调用。
现在,您可以通过创建自定义回调类来实现,该类在回调时通过回调实现。
public abstract class CancelableCallback<T> implements Callback<T> {
private boolean canceled;
private T pendingT;
private Response pendingResponse;
private RetrofitError pendingError;
public CancelableCallback() {
this.canceled = false;
}
public void cancel(boolean remove) {
canceled = true;
}
@Override
public void success(T t, Response response) {
if (canceled) {
return;
}
onSuccess(t, response);
}
@Override
public void failure(RetrofitError error) {
if (canceled) {
return;
}
onFailure(error);
}
protected abstract void onSuccess(T t, Response response);
protected abstract void onFailure(RetrofitError error);
}
MyApi.java,
private interface MyApi {
@GET("/")
void getStringList(Callback<List<String>> callback);
}
在活动或片段中,
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(Config.URL)
.build();
MyApi service = restAdapter.create(MyApi.class);
CancelableCallback callback = new CancelableCallback<List<String>>() {
@Override
protected void onSuccess(List<String> stringList, Response response) {
for (String str : stringList) {
Log.i("Result : ", str);
}
}
@Override
protected void onFailure(RetrofitError error) {
Log.e("Error : ", error.getMessage() + "");
}
};
service.getStringList(callback);
要取消您的请求,请致电
callback.cancel();
这是取消每个请求的简单示例。您可以通过创建回调管理器类来同时处理(取消,暂停,恢复)两个或多个请求。请查看that comment以供参考。
希望它对你有用。
答案 1 :(得分:2)
问题是请求已完成,来自docs:
cancel
public OkHttpClient cancel(Object tag)
取消标记为tag的所有已安排或正在进行的呼叫。已完成的请求无法取消。