(List<Header> okhttpHeaders, Metadata toAdd)
| 132 | } |
| 133 | |
| 134 | private static List<Header> addMetadata(List<Header> okhttpHeaders, Metadata toAdd) { |
| 135 | byte[][] serializedHeaders = TransportFrameUtil.toHttp2Headers(toAdd); |
| 136 | for (int i = 0; i < serializedHeaders.length; i += 2) { |
| 137 | ByteString key = ByteString.of(serializedHeaders[i]); |
| 138 | // Don't allow HTTP/2 pseudo headers to be added by the application. |
| 139 | if (key.size() == 0 || key.getByte(0) == ':') { |
| 140 | continue; |
| 141 | } |
| 142 | ByteString value = ByteString.of(serializedHeaders[i + 1]); |
| 143 | okhttpHeaders.add(new Header(key, value)); |
| 144 | } |
| 145 | return okhttpHeaders; |
| 146 | } |
| 147 | |
| 148 | /** Strips all non-pseudo headers reserved by gRPC, to avoid duplicates and misinterpretation. */ |
| 149 | private static void stripNonApplicationHeaders(Metadata headers) { |
no test coverage detected