小编tic*_*fab的帖子

Scala中的Akka,感叹号和问号

向Actors发送消息时感叹号(!)和问号(?)之间有什么区别?

myActor ! Hello(value1)
myActor ? Hello(value1)
Run Code Online (Sandbox Code Playgroud)

scala operators actor akka

63
推荐指数
2
解决办法
2万
查看次数

Git忽略Xcode 4项目的文件

对于Xcode 4(.3.2),哪些文件最好在git中忽略?这个较老的问题解决了同样的问题,但我发现我的结构不同,所以我认为它是关于Xcode的旧版本.

git xcode ios ios5 xcode4.3

20
推荐指数
3
解决办法
1万
查看次数

NSString的字节长度是多少?

我如何获得字节长度NSString?如果myString包含"hallo",myString.length将返回5,但是取了多少实际字节?

iphone nsstring ios

20
推荐指数
3
解决办法
1万
查看次数

scala/akka/play中的简单Websocket

我想使用Scala/Akka/Play创建一个简单的Websocket应用程序.

我从示例中看到的内容(例如网络聊天Scala Days最近的演讲)是JavaScript/Coffeescript,html模板等的混合体.

我的Websocket应用程序的客户端也将是原生移动应用程序(Android,iOS),所以我需要考虑"浏览器外".

如何创建一个只能推送"hello"字符串的websocket应用程序?

scala websocket akka playframework-2.1

19
推荐指数
1
解决办法
1万
查看次数

Android OkHttp,刷新过期令牌

场景:我使用OkHttp/Retrofit访问Web服务:同时发送多个HTTP请求.在某些时候,身份验证令牌到期,并且多个请求将获得401响应.

问题:在我的第一个实现中,我使用拦截器(这里简化),每个线程都尝试刷新令牌.这导致一团糟.

public class SignedRequestInterceptor implements Interceptor {

    @Override
    public Response intercept(Chain chain) throws IOException {
        Request request = chain.request();

        // 1. sign this request
        request = request.newBuilder()
                    .header(AUTH_HEADER_KEY, BEARER_HEADER_VALUE + token)
                    .build();


        // 2. proceed with the request
        Response response = chain.proceed(request);

        // 3. check the response: have we got a 401?
        if (response.code() == HttpURLConnection.HTTP_UNAUTHORIZED) {

            // ... try to refresh the token
            newToken = mAuthService.refreshAccessToken(..);


            // sign the request with the new token and proceed …
Run Code Online (Sandbox Code Playgroud)

android retrofit okhttp

16
推荐指数
3
解决办法
6866
查看次数

204无内容响应的改造,回调?

在Android上,我最初实现了一个像这样的Retrofit界面:

@DELETE(USER_API_BASE_URL + "/{id}")
public void deleteUser(@Path("id") String id, Callback<User> callback);
Run Code Online (Sandbox Code Playgroud)

成功删除后,服务器返回204 NO CONTENT.这导致回调触发失败,retrofit.RetrofitError: End of input at character 0 of因为它期望一个User对象返回响应.

我然后用这样重写它,Void而不是User:

@DELETE(USER_API_BASE_URL + "/{id}")
public void deleteUser(@Path("id") String id, Callback<Void> callback);  <-- VOID
Run Code Online (Sandbox Code Playgroud)

但是我从回调中得到了同样的错误.解决这个问题的正确方法是什么?谢谢.

android retrofit http-status-code-204

14
推荐指数
2
解决办法
8080
查看次数

Android Retrofit 2 + RxJava:听听层出不穷

我可以使用Retrofit + RxJava来聆听无尽的流吗?例如Twitter流.我有的是这个:

public interface MeetupAPI {
    @GET("http://stream.meetup.com/2/rsvps/")
    Observable<RSVP> getRSVPs();
}

MeetupAPI api = new Retrofit.Builder()
            .baseUrl(MeetupAPI.RSVP_API)
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .addConverterFactory(GsonConverterFactory.create())
            .build()
            .create(MeetupAPI.class);

api.getRSVPs()
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(rsvp -> Log.d(TAG, "got rsvp"),
                error -> Log.d(TAG, "error: " + error),
                () -> Log.d(TAG, "onComplete"));
Run Code Online (Sandbox Code Playgroud)

但在解析第一个对象后调用"onComplete".有没有办法告诉Retrofit保持开放直到另行通知?

android rx-java retrofit retrofit2

14
推荐指数
1
解决办法
4203
查看次数

更改Android Studio每个Mac的编辑器字体?

我正在尝试新的Android Studio for Mac,但似乎无法更改字体.我只能改变主题.由于某种原因,禁用了字体更改.

在此输入图像描述

android android-studio

13
推荐指数
2
解决办法
1万
查看次数

如何在Play!Framework WebSockets中使用TLS("wss://")

我不能wss://在我用Play!Framework 2.2创建的简单WebSocket应用程序中使用.它回复了消息.端点是这样的

def indexWS2 = WebSocket.using[String] {
  request => {
    println("got connection to indexWS2")

    var channel: Option[Concurrent.Channel[String]] = None
    val outEnumerator: Enumerator[String] = Concurrent.unicast(c => channel = Some(c))

    // Log events to the console
    val myIteratee: Iteratee[String, Unit] = Iteratee.foreach[String] {gotString => {
      println("received: " + gotString)

      // send string back
      channel.foreach(_.push("echoing back \"" + gotString + "\""))
    }}

    (myIteratee, outEnumerator)
  }
}
Run Code Online (Sandbox Code Playgroud)

并且路线被描述为

GET     /ws2                        controllers.Application.indexWS2
Run Code Online (Sandbox Code Playgroud)

我从这样的JS客户端创建连接

myWebSocket = new WebSocket("ws://localhost:9000/ws2");
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,如果我改变ws://wss://以使用TLS,它失败,我得到以下Netty的例外:

[error] …
Run Code Online (Sandbox Code Playgroud)

ssl websocket playframework playframework-2.2

11
推荐指数
2
解决办法
5288
查看次数

将Cloud messaging api添加到GoogleApiClient时出现IllegalArgumentException

我正在Android应用程序中设置Google Cloud Messaging.一开始,我初始化GoogleApiClient以检查Play服务是否可用:

mGoogleApiClient = new GoogleApiClient.Builder(this)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();
Run Code Online (Sandbox Code Playgroud)

试图运行它会产生IllegalArgumentException: must call addApi() to add at least one API,所以我还需要添加GCM Api,但说实话,我在文档中找不到它.就像是:

mGoogleApiClient = new GoogleApiClient.Builder(this)
        .addApi(gcm.API)     <----- WHAT HERE?
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();
Run Code Online (Sandbox Code Playgroud)

android illegalargumentexception google-cloud-messaging google-play-services

11
推荐指数
1
解决办法
1763
查看次数