<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def send_result(self, return_code, output, service_description='', time_stamp=0, specific_servers=None):
        '''
        Send result to the Skinken WS
        '''
        if time_stamp == 0:
            time_stamp = int(time.time())

        if specific_servers == None:
            specific_servers = self.servers
        else:
            specific_servers = set(self.servers).intersection(specific_servers)

        for server in specific_servers:
            post_data = {}
            post_data['time_stamp'] = time_stamp
            post_data['host_name'] = self.servers[server]['custom_fqdn']
            post_data['service_description'] = service_description
            post_data['return_code'] = return_code
            post_data['output'] = output

            if self.servers[server]['availability']:
                url = '%s://%s:%s%s' % (self.servers[server]['protocol'],
                                         self.servers[server]['host'],
                                         self.servers[server]['port'],
                                         self.servers[server]['uri'])

                auth = (self.servers[server]['username'],
                        self.servers[server]['password'])

                try:
                    response = requests.post(url,
                                             auth=auth,
                                             headers=self.http_headers,
                                             verify=self.servers[server]['verify'],
                                             timeout=self.servers[server]['timeout'],
                                             data=post_data)
                    if response.status_code == 400:
                        LOG.error("[ws_shinken][%s]: HTTP status: %s - The content of the WebService call is incorrect",
                                      server,
                                      response.status_code)
                    elif response.status_code == 401:
                        LOG.error("[ws_shinken][%s]: HTTP status: %s - You must provide an username and password",
                                      server,
                                      response.status_code)
                    elif response.status_code == 403:
                        LOG.error("[ws_shinken][%s]: HTTP status: %s - The username or password is wrong",
                                      server,
                                      response.status_code)
                    elif response.status_code != 200:
                        LOG.error("[ws_shinken][%s]: HTTP status: %s", server, response.status_code)
                except (requests.ConnectionError, requests.Timeout), error:
                    self.servers[server]['availability'] = False
                    LOG.error(error)
            else:
                LOG.error("[ws_shinken][%s]: Data not sent, server is unavailable", server)

            if self.servers[server]['availability'] == False and self.servers[server]['cache'] == True:
                self.servers[server]['csv'].writerow(post_data)
                LOG.info("[ws_shinken][%s]: Data cached", server)